当前位置: 移动技术网 > IT编程>开发语言>.net > numpy和pandas的基础用法

numpy和pandas的基础用法

2020年07月14日  | 移动技术网IT编程  | 我要评论

numpy

numpy创建array

import numpy as np
a = np.array([[1,2,3],
              [2,3,4]],dtype = np.int32)   #不加32默认是64位的,这一句是在给矩阵内部的元素进行定义
print(a.dtype)


#生成全部为0元素的矩阵,参数为所希a望的shape
a = np.zeros((12,3))
print(a)
#生成全部为1的矩阵,参数为所希望矩阵的shape
a = np.ones((3,4))
print(a)
#生成一个全部为空的矩阵容器
b = np.empty((3,4))
print(b)
#生成随机数,并且可以按照长度整合
a = np.arange(12).reshape((3,4))
print(a)
#生成一个从1开始,到10结束(都包含在里面)中间划分20段,生成的是一个可迭代数列
a = np.linspace(1,10,6).reshape((2,3))
print(a)
for i in a:
    print(i)

numpy的属性

import numpy as np
array = np.array([[1,2,3],
         [2,3,4]])
print(array)
print('number of dim(几维):',array.ndim)
print('number of shape(行和列):',array.shape)   #如果是一个一维的数组,其中有三个元素那个就是(3,)
print('number of size(元素个数):',array.size)

运行结果:
在这里插入图片描述

numpy的基础运算

import numpy as np

a = np.array([[1,2],
              [3,4]])
b = np.arange(4).reshape(2,2)
print(a)
print(b)

#两种不同的乘法
c = a*b   #按照位置相乘
c_dot = np.dot(a,b)     #按照矩阵运算相乘
print(c)
print(c_dot)


c = np.random.random((2,4))    #随机生成2行4列的矩阵,矩阵元素的值不超过1
print(c)
print(np.sum(c))     #求矩阵所有元素的和
print(np.min(c))     #求矩阵所有元素中的最小值
print(np.max(c))     #求矩阵中所有元素的最大值




d = np.arange(2,14).reshape((3,4))
print(d)
print(np.argmin(d))      #矩阵中最小元素的索引
print(np.argmax(d))      #矩阵中最大元素的索引

print(np.mean(d))        #求矩阵的平均值
print(np.mean(d,axis = 0))    #axis参数等于0则是对列取平均,axis参数等于1则是对行取平均


print(np.cumsum(d))      #前几个数之和
print(np.diff(d))        #两数之差

print(np.nonzero(d))     #输出的是不是数字零的行和列
print(np.sort(d))        #矩阵逐行排序

print(np.transpose(d))   #矩阵的转置
print(d.T)               #矩阵的转置
print((d.T).dot(d))      #矩阵的转置乘以本身

print(np.clip(d,4,9))    #将d矩阵中小于4的变为4大于9的变为9,中间的保持不变

numpy的索引

import numpy as np
A = np.arange(3,15).reshape((3,4))
print(A)
print(A[2][1])      #行和列的索引都是从0开始索引
print(A[1,1:4])     #第二行第二个数到第4个数
for row in A:
    print(row)      # 迭代出行
for colum in A.T:
    print(colum)    #迭代出列

print(A.flatten())  #列表显示矩阵的所有值

numpy的合并

import numpy as np
A = np.array([1,1,1])[:,np.newaxis]     #改变了维度
print(A)
B = np.array([2,2,2])[:,np.newaxis]
print(np.vstack((A,B)))   #将A和B上下合并
print(np.hstack((A,B)))   #将A和B左右合并
print(np.hstack((A,B)).shape)
print(np.concatenate((A,B,A,B), axis = 1))  #axis为0上下合并,axis为1左右合并

numpy的分割

import numpy as np
a = np.arange(12).reshape((3,4))
print(a)
print(np.split(a,2,axis = 1))        #对a矩阵在行上面把矩阵分割成两列
print(np.split(a,3,axis = 0))        #对a矩阵在列上面把矩阵分割成三行
print(np.vsplit(a,3))                #横向分割
print(np.hsplit(a,4))                #纵向分割

numpy的copy和deepcopy

import numpy as np
a = np.arange(12).reshape((3,4))
print(a)
print(np.split(a,2,axis = 1))        #对a矩阵在行上面把矩阵分割成两列
print(np.split(a,3,axis = 0))        #对a矩阵在列上面把矩阵分割成三行
print(np.vsplit(a,3))                #横向分割
print(np.hsplit(a,4))                #纵向分割

pandas

pandas的基本介绍

import pandas as pd
import numpy as np
s = pd.Series([1,2,3,np.nan,44,1])
print(s)
dates = pd.date_range('20160101',periods=4)
print(dates)
df1 = pd.DataFrame(np.arange(12).reshape((3,4)),index = ["a",'b','c'],columns = dates)   #pd.DataFrame(矩阵,每一行的索引值,每一列的索引值)
print(df1)
df2 = pd.DataFrame(np.arange(12).reshape(3,4))
print(df2)        #默认就是0,1,2,3,4作为行和列的序号

df3 = pd.DataFrame(
    {'A':1.0,
     'B':pd.Timestamp('20200525'),
     'C':pd.Series(1,index=list(range(4)),dtype='float32'),
     'D':np.array([3]*4,dtype='int32'),
     'E':pd.Categorical(['test','train','test','train']),
     'F':'foo'
     }
)
print(df3)
print(df3.dtypes)       #打印每一列的数据类型
print(df3.describe())



df3.sort_values(by = 'E')
print(df3)

pandas选择数据

import numpy as np
import pandas as pd
dates = pd.date_range('20200121',periods=6)
df = pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=['A','B','C','D'])
print(df)
print(df['A'])
print(df.A)          #按照索引名称提取行和列

print(df[0:3])       #按照行切片选择数据

print(df.loc['20200121'],['A'])          #根据行和列名称来选取数据


print(df.iloc[[1,2,3],1:3])              #挑选出固定行和相对列的数据


#print(df.ix[:3,['A']])       #1.0.0版本之后移除了这个ix函数

#是或者否的一个判断
print(df[df.A>8])              #只对比A但是,满足条件的A所在的行都会被留下(布尔型索引)

pandas设置值

import numpy as np
import pandas as pd
dates = pd.date_range('19960121',periods=6)
print(dates)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index = dates,columns = ['A','B','C','D'])
print(df)
df.iloc[3,3] = 123               #利用iloc定位并修改
print(df)

本文地址:https://blog.csdn.net/weixin_43580807/article/details/107324464

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网