ndarray:一种多维数组对象,是一个快速而灵活的大数据集容器,可以利用其对整块数据执行运算。
广播(broadcasting):不同大小的数组之间的运算
基本的索引和切片:当你将⼀个标量值赋值给⼀个切⽚时(如arr[5:8]=12),该值会⾃动传播(也就说后⾯将会讲到的“⼴播”)到整个选区。跟列表最重要的区别在于,数组切⽚是原始数组的视图。这意味着数据 不会被复制 ,视图上的任何修改都会直接反映到源数组上。
二维数组的表示方法:
通过布尔型设置数组
花式索引(Fancy indexing):利用整数数组进行索引
#以特定顺序选取⾏⼦集,只需传⼊⼀个⽤于指定顺序的整数列表或ndarray即可
arr=np.empty((8,4))
for i in range(8):
arr[i]=i
arr
arr[[4,3,0,6]]
arr[[0,1],[3,2]]
#花式索引跟切⽚不⼀样,它总是将数据复制到新数组中。
数组转置和轴对换
#数组转置
arr=np.arange(15).reshape((3,5))
print(arr)
print(arr.T)
#计算矩阵内积
arr=np.random.randn(6,3)
np.dot(arr.T,arr)
对于⾼维数组,transpose需要得到⼀个由轴编号组成的元组才能对这些轴进⾏转置:
arr = np.arange(16).reshape((2,2,4))
print(arr)
arr.transpose((1,0,2))
arr.swapaxes(0, 2)
通用函数(ufunc):快速的元素级数组函数
利用数组进行数据处理
NumPy数组使你可以将许多种数据处理任务表述为简洁的数组表达式(否则需要编写循环)。⽤数组表达式代替循环的做法,通常被称为⽮量化
将条件逻辑表述为数组运算
np.where()=if condtion x else y
数学和统计方法
np.mean()
np.sum()
axis= 用于计算该轴向上的统计值,axis=1计算行的平均值,axis=0计算每列的统计值
用于布尔型数组的方法
bools.any()
bools.all()
唯一化以及其它的集合逻辑
np.unique()找出数组中的唯一值并返回已排序的结果
用于数组的文件输入输出(.npy文件)
np.save()
np.load()
np.savez()将多个数组保存到一个未压缩文件中
线性代数
np.dot()
@ 矩阵乘法
numpy.linalg中有⼀组标准的矩阵分解运算以及诸如求逆和⾏列式之类的东西
伪随机数生成
参考资料: Mckinney W . 利用PYTHON进行数据分析[M]. 机械工业出版社, 2014.