PYTHON numpy通用计算函数
- 通用函数,就是能同时对元素内所有元素逐个进行运算的函数,例如[1,2,3,4]4,可以每个元素都4;
- 虽然用for循环也可以做到同样的效果,使用numpy则会更快;
- numpy,scipy.special;
- 符号:+、-、-、*、/、//、**、%、absolute(abs)均为通用计算符号,三角函数(sin, cos, tan)与反三角函数也可(arcsin. arccos, arctan)
- +: np.add
- -: np.subtract
- -: np.negative
- *: np.multiply
- /: np.divide
- //: np.floor_divide
- **: np.power
- %: np.mod
- absolute(abs): 两用途,一是处理复数的时候,可以得到复数的幅度;第二用途就是取绝对值。
掩码操作
先判断a是否小于50,会返回true/false,然后再在a里面返回true的值。
指定输出
隔数插入
外积
np.multiply.outer(a, b)
聚合操作
聚合可以直接作用在数组上,直接使用numpy.xxx调用,除了any 和 all之外,每个函数都存在一个NaN安全的版本(即存在np.nansum(), numpy中需要加上nan来保证nan安全,而在pandas里面,全部默认nan安全)。
- np.sum:速度比python块,可设置维度
- np.prod:积
- np.mean
- np.std
- np.var: 方差
- np.min
- np.max
- np.argmin
- np.argmax
- np.median
- np.percentile(a, q, axis): 基于元素排序的统计值,a为输入,q为要计算的百分位数,axis为需要沿着计算百分位的数轴,二维取值为0,1
- np.any: 是否至少存在一个为真的元素
- np.all:所有元素是否为真
适用通用函数的聚合
- reduce: 作用在每一个函数然后聚合成一个值;
- accumulate:作用一样,但是会生成中间值。
-
广播
广播与通用函数的概念差不多。
规则:
- 如果两个数组维度不同,在最小维度的数组形状最左边补上1.
- 如果两数组形状在任一维度都不匹配, 则数组的形状会沿着维度为1的维度拓展以匹配零位一个数组。
- 如果两个数组在任一维度在任何一个维度都不匹配并且没有任何一个维度等于1,则异常。
索引
更为骚的索引
骚爆的索引结合掩码,骚不骚
数组的排序
- 数组默认为快排
- 可选其他方式排序
- 可选axis
sort
argsort
返回排序完的index