用书:《python数据分析与应用》
语雀知识库
数据分析
第二章NumPy
数组ndarray
数组属性
创建数组
np.array([])
np.arange() np.linspace() np.logspace()
np.zeros() np.eye() np.diag() np.ones()
生成随机数
np.random.random(10)
np.random.rand(4,3)
np.random.rand(4,3)
np.random.randint(2,10,size=[2,5])
改变数组形状
np.reshape() np.ravel() np.flatten()
组合数组
分割数组
矩阵
创建矩阵
np.mat() np.matrix() np.bmat()
ufunc函数
ufunc函数的广播机制
用于不同形状的数组之间之间算术运算
利用NumPy进行统计分析
读/写文件
二进制文件存储读取
np.save() 保存单个数组对象 .npy
import numpy as np #导入NumPy库
arr = np.arange(100).reshape(10,10) #创建一个数组
np.save("../tmp/save_arr",arr) #保存数组
np.savez() 保存多个数组对象 .npz
arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.arange(0,1.0,0.1)
np.savez('../tmp/savez_arr',arr1,arr2)
存储时可以省略后缀名,读取时不能省略
np.load()
loaded_data = np.load("../save_arr.npy") #读取含有单个数组的文件
print('读取的数组为:\n',loaded_data)
loaded_data1 = np.load("../savez_arr.npz") #读取含有多个数组的文件
print('读取的数组1为:',loaded_data1['arr_0'])
print('读取的数组2为:',loaded_data1['arr_1'])
print(‘读取的数组1为:’,loaded_data1**[‘arr_0’])
print(‘读取的数组2为:’,loaded_data1[‘arr_1’]**)
文件存储与读取
np.savetxt()
np.loadtxt()
arr = np.arange(0,12,0.5).reshape(4,-1)
#-1表示根据指定的行数得到列数,不需自己指定列数
print('创建的数组为:',arr)
#fmt ="%d"为指定保存为整数
np.savetxt("../arr.txt", arr, fmt="%d", delimiter=",")
#读入的时候也需要指定逗号分隔
loaded_data = np.loadtxt("../arr.txt",delimiter=",")
print('读取的数组为:',loaded_data)
利用函数进行简单的统计分析
排序
直接排序
sort() arr.sort(axis=1) 沿横轴排序 缺省横轴 axis=0沿纵轴排序
间接排序
argsort() arr.argsort() 返回排序后元素索引的数组
lexsort() 一次性对多个键的数组执行简介排序
a = np.array([3,2,6,4,5])
b = np.array([50,30,40,20,10])
c = np.array([400,300,600,100,200])
d = np.lexsort((a