1、数组和矢量计算
利用数组进行统计处理
- meshgrid
meshgrid()用于从数组a和b产生网格,生成的网格矩阵A和B大小相同,
生成size(a)*size(b)大小的矩阵,相当于把a从一行重复增加到size(b)行,把b转置成一列再重复增加到size(a)列。
- where
np.where函数是三元表达式x if conditoin else y的矢量化版本。12345xaar = np.array([1.1, 1.2, 1.3, 1.4, 1.5])yaar = np.array([2.1, 2.2, 2.3, 2.4, 2.5])# cond为true时,选取xaar中的元素,否则选取yaar中的元素cond = np.array([True, False, True, False, True])result = np.where(cond, xaar, yaar)
where的第二个和第三个参数不必是数组,也可以是标量值。在数据分析中,where通常用语根据一个数组产生另外一个新的数组。
假设有一个随机数据组成的矩阵,将其中的正数替换为2,负数替换为-2,
数学和统计方法
可以通过数组上的一组函数对整个数组或者某个轴向的数据进行统计计算。sum、mean、以及标准差等聚合计算既可以当作数组的实例方法调用,也可以当作numpy的顶级函数使用。
其他函数有:
用于布尔型数组的方法
sum()经常用来对布尔型数组中的True值计数:
另外,any()用语测试数组中是否存在一个或者多个True,all则检测数组中所有值是否都是True。
排序
跟python内置的列表类型一样,numpy数组也可以通过sort方法进行就地排序:
np.sort()返回的是数组得已排序副本,而就地排序则会修改数组本身。
唯一化以及其他的集合逻辑
np.unique,用于找出数组中的唯一值并返回已排序的结果。
2、用于数组的文件输入输出
numpy能够读写磁盘上的文本数据和二进制数据。
将数组以二进制格式保存
np.save()和np.load()是读写磁盘数组数据的两个主要函数。默认情况下,数组以未压缩的原始二进制格式保存在扩展名为.npy的文件中。
np.savez()用于将多个数组保存到一个压缩文件中,将数组以关键字参数的形式传入即可:
线性代数
- 矩阵乘法123x = np.array([[1, 2, 4], [4, 5, 6]])y = np.array([[1, 2], [3, 4], [5, 6]])print x.dot(y) # equals np.dot(x, y)
numpy.linalg中有一组标准得矩阵分解运算以及诸如求逆和行列式之类得方法。
一些其他常用的函数说明:
(1)trace:计算对角线元素的和
(2)det:计算行列式
(3)svd:计算奇异值分解
(4)solve:解线性方程主Ax=b
…
4、随机数生成
numpy.random模块对python内置的randon进行了补充,增加了一些用于高效生成多种概率分布的样本值函数。
normal
得到服从标准正态分布得随机数。12samples = np.random.normal(size=(4, 5))print samplesshuffle
对一个序列就地随机排列binomial
产生二项分布得样本值