通用函数(universal function)通常叫作ufunc,它对数组中的各个元素逐一进行操作。这表明,通用函数分别处理输入数组的每个元素,生成的结果组成一个新的输出数组。输出数组的大小跟输入数组相同。
一元通用函数:
- abs:计算绝对值
- sqrt:计算平方根
- square:计算平方
- exp:计算元素的值数ex
- log、log10、log2:计算对数
- ceil、floor:计算元素的ceiling值、floor值
- rint:计算元素四舍五入到最接近的整数
- modf:把数组的小数和整数部分以两个独立数组的形式返回
- isnan、isinf:返回bool型数组,标识元素是否为nan、inf
二元通用函数,对两个数组进行操作:
- add、subtract、multiply、divide:把数组中的对应元素相加、相减、相乘、相除
- power:对第一个数组中的元素A,根据第二个数组中的相应元素B,计算AB
- mod:元素级的求余数
numpy的数学函数,基本上都是元素级别的,对每个元素进行数学运算。
一,算术函数
numpy的数学函数都是元素级别的,也就是说,只用于位置相同的元素之间,所得到的运算结果组成一个新的数组。
- np.add
- np.subtract
- np.multiple
- np.divide
- np.florr_divide
- np.power
这些函数有等价的运算符,分别是:+,-,*,/,//,**
还有一些其他的数学函数:
- np.sqrt
- np.square
- np.absoulte, np.abs: 取绝对值
- np.sign:返回元素的数字符号
二,指数和对数
- np.exp
- np.log
- np.exp2
- np.log2
- np.log10
三,四舍五入
- np.around(a, decimals=0, out=None) 四舍五入
- np.ceil(x, *args, **kwargs) 上限
- np.floor(x, *args, **kwargs)下限
四,数组的扩展加法运算
numpy可以按照特定的轴计算各个元素的和,累加和,及差值。
1,计算某个轴的元素之和
通过不同的 axis
,numpy 会沿着不同的方向进行操作:如果不设置,那么对所有的元素操作;如果axis=0
,则沿着纵轴进行操作;axis=1
,则沿着横轴进行操作。但这只是简单的二位数组,如果是多维的呢?可以总结为一句话:设axis=i
,则 numpy 沿着第i
个下标变化的方向进行操作。
numpy.sum(a[, axis=None, dtype=None, out=None, …])
2,计算某个轴上的元素的累计和
numpy.cumsum(a, axis=None, dtype=None, out=None)
3,差值
计算数组中元素的差值:
numpy.diff(a, n=1, axis=-1, prepend=np._NoValue, append=np._NoValue)
参数注释:
n:表示距离为n,默认值是1,表示diff = a[i+1]-a[i]
axis:表示沿着该轴做差值运算
A = np.arange(2, 14).reshape((3, 4)) A[1, 1] = 8 print(A) # [[ 2 3 4 5] # [ 6 8 8 9] # [10 11 12 13]] print(np.diff(A)) # [[1 1 1] # [2 0 1] # [1 1 1]] print(np.diff(A, axis=0)) # [[4 5 4 4] # [4 3 4 4]]
参考文档: