数据分析-Numpy数值处理内容 |
Numpy数值计算基础
Numpy数组对象
创建数组对象
一维:np.array([a,b,c)]
二维:np.array([[a,b],[b,c],[c,d]])
三维:np.array([[[a,b],[b,c],[c,d]],[[a,b],[bbc],[c,d]]])
数组属性
arr.ndim:返回数组维数(int类型)
arr.shape:返回数组尺寸,形状(m,n)
arr.size:返回数组元素总数
arr.atype:返回数组中元素类型
arr.itemsize:返回数组每个元素大小
arange函数创建:np.arange(0,10,1),不包括终值
linspace函数创建:np.linspace(0,1,10),等差数组,包括终值,总数为10
logspace函数创建:np.logspace(0,1,10),等比数组,以10为底包括终值
zeros函数:np.zeros((m,n)),生成m行n列的全0数组
eye函数:np.eye(n),生成左上对角线全为1的n行n列数组
diag函数:np.diag([1,2,3,4]),生成左上对角线为1,2,3,4的n行n列数组
ones函数:np.ones((m,n)),生成左上对角线全为1的m行n列数组
生成随机数
0到1随机数:np.random.random(10)
均匀分布随机数:np.random.rand(m,n),m行n列
正态分布随机数:np.random.randn(m,n),m行n列
上下限随机数:np.random.randint(start,end,size=[m,n]),m行n列
随机数生成函数
随机数种子:np.random.seed(0)
乱序
np.permutation(arr),创建新的副本数组并打乱输出
np.shuffle(arr),直接对原数组打乱,不会返回输出
索引访问数组
一维数组索引
arr[start:end:step],不包括end处的值
arr[::-1],相当于将arr反向排列
二维数组索引
arr[a:b,c:d],a至b的行与c至d的列的交集为索引值,同样不包括终值
数组形态变换
shape=(m,n):arr. shape = (m,n),将arr改为m行n列,直接对原数组操作,不会生成新数组,所以不可以与reshape一样可以给等号右边赋值
reshape(m,n):arr.reshape(m.n),先copy一个与arr一样的新数组arr1,再将arr1形状改为m行n列,并返回arr1,所以使用reshape时可以给等号右边赋值
resize(m,n):arr.resize(m,n),直接对原数组操作,将原数组改成m行n列,但resize可以越界,不足添0,同时与reshape一样不可以赋值
横向展平
arr.ravel(),将数组按照横向展开成一维
arr.flatten(),将数组按照横向展开成一维
纵向展平
arr.ravel("F"),将数组按照纵向展开成一维
arr.fflatten("F"),将数组按照纵向展开成一维
横向连接
np.hstack((arr1,arr2))
np.concatenate((arr1,arr2),axis=1)
纵向连接
np.vstack((arr1,arr2))
np.concatenate((arr1,arr2),axis=0)
横向分割
np.hsplit(arr,n):横向分割成n个数组
np.split(arr,n,axis=1)
纵向分割
np.vsplit(arr,n)
np.split(arr,n,axis=0)
Numpy通用函数
广播机制
文件存储
保存一个数组:np.save("路径",arr)
保存多个数组:np.savez("路径",arr1,arr2)
保存为txt文件:np.savetxt("路径",arr,fmt="格式(如%d)",delimiter="根据指定分隔符读取(如",")")
文件读取
读取数组:np.load("路径”)
读取txt文本:np.loadtxt("路径",delimiter=",")
Numpy统计分析
排序
arr.sort():直接排序
arr.sort(axis=1):沿横轴排序
arr.sort(axis=0):沿纵轴排序
arr.argsort():返回重新排序值的下标
arr.lexsort()
去重与重复
np.unique(arr):返回去重并重新从小到大排序的数组
重复
np.tile(arr,n):将arr重复n次
arr.repeat(n,axis=0):将arr按行重复n次
arr.repeat(n,axis=1):将arr按列重复n次
统计函数
np.sum(arr):计算数组arr所有元素总和
arr.sum(axis=0):计算数组arr纵轴元素总和
arr.sum(axis=1):计算数组arr横轴元素总和
np.mean(arr):计算arr数组均值
arr.mean(axis=0):计算arr数组纵轴均值
arr.mean(axis=1):计算arr数组横轴均值
np.std(arr):计算数组标准差
np.var(arr):计算数组方差
np.min(arr):计算数组最小值
np.max(arr):计算数组最大值
np.argmin(arr):返回数组最小元素的索引
np.argmax(arr):返回数组最大元素的索引
np.cumsum(arr):计算所有元素的累计和
np.cumprod(arr):计算所有元素的累计积
Numpy矩阵
创建矩阵
np.mat(str),str="1 2 3;4 5 6;7 8 9"
np.matrix()
np.bmat("a b;b a") ,a,b为同维矩阵
矩阵计算
加:对应元素相加
减:对应元素相减
乘:运用矩阵乘法守则:前行乘以后列
除:对应元素相除
点乘:np.multiply(arr1,arr2),对应元素相乘
矩阵属性
arr.shape,获取矩阵形状
arr.shape(0),获取矩阵行数
arr.shape(1),获取矩阵列数
矩阵排序:arr.sort(),对矩阵每一行排序