一、通用函数运算
(一),数组的运算
对于一个数组,可以直接用加+,减-,乘*,除/,逻辑非,指数运算符 **,其结果就是数组里面每一个元素运算的结果。
(二),NumPy实现的算术运算符
1、加法运算:np.add()
>>> x1 = np.arange(9.0).reshape((3, 3))
[[0. 1. 2.]
[3. 4. 5.]
[6. 7. 8.]]
>>> x2 = np.arange(3.0)
[0. 1. 2.]
>>> np.add(x1, x2)
array([[ 0., 2., 4.],
[ 3., 5., 7.],
[ 6., 8., 10.]])
这个例子是每一列对应相加。
2、np.subtract() 减法运算
>>> x1 = np.arange(9.0).reshape((3, 3))
[[0. 1. 2.]
[3. 4. 5.]
[6. 7. 8.]]
>>> x2 = np.arange(3.0)
[0. 1. 2.]
>>> np.subtract(x1, x2)
array([[ 0., 0., 0.],
[ 3., 3., 3.],
[ 6., 6., 6.]])
每列对应相减。
3、np.negative() 负数运算
>>> np.negative([1.,-1.])
array([-1., 1.])
4、np.multiplt() 乘法运算
>>> x1 = np.arange(9.0).reshape((3, 3))
[[0. 1. 2.]
[3. 4. 5.]
[6. 7. 8.]]
>>> x2 = np.arange(3.0)
[0. 1. 2.]
>>> np.multiply(x1, x2)
array([[ 0., 1., 4.],
[ 0., 4., 10.],
[ 0., 7., 16.]])
每列元素对应相乘。
5、np.divide() 除法运算
>>> x = np.arange(5)
>>> np.true_divide(x, 4)
array([ 0. , 0.25, 0.5 , 0.75, 1. ])
>>> from __future__ import division
>>> x/4
array([ 0. , 0.25, 0.5 , 0.75, 1. ])
>>> x//4
array([0, 0, 0, 0, 1]
6、np.floor_divide() 地板除法运算
>>> np.floor_divide(7,3)
2
>>> np.floor_divide([1., 2., 3., 4.], 2.5)
array([ 0., 0., 1., 1.])
即向下取整。
7、np.power() 指数运算
>>> x1 = range(6)
>>> x1
[0, 1, 2, 3, 4, 5]
>>> np.power(x1, 3)
array([ 0, 1, 8, 27, 64, 125])
>>> x2 = [1.0, 2.0, 3.0, 3.0, 2.0, 1.0]
>>> np.power(x1, x2)
array([ 0., 1., 8., 27., 16., 5.])
8、np.mod() 模/余数
>>> np.remainder([4, 7], [2, 3])
array([0, 1])
>>> np.remainder(np.arange(7), 5)
array([0, 1, 2, 3, 4, 0, 1])
(三)、绝对值
1、abs() ——python内置函数
2、np.absoute() 或者 np.abs()
(四)、三角函数
1、np.sin()
>>> np.sin(np.array((0., 30., 45., 60., 90.)) * np.pi / 180. )
array([ 0. , 0.5 , 0.70710678, 0.8660254 , 1. ])
2、np.cos()
>>> np.cos(np.array([0, np.pi/2, np.pi]))
array([ 1.00000000e+00, 6.12303177e-17, -1.00000000e+00])
>>> # Example of ValueError due to provision of shape mis-matched `out`
>>> np.cos(np.zeros((3,3)),np.zeros((2,2)))
Traceback (most recent call last):
File "", line 1, in
ValueError: operands could not be broadcast together with shapes (3,3) (2,2)
3、np.tan()
>>> from math import pi
>>> np.tan(np.array([-pi,pi/2,pi]))
array([ 1.22460635e-16, 1.63317787e+16, -1.22460635e-16])
(五)、指数与对数
1、指数
np.exp(x) e 的x次
np.exp2(x) 2的x次、
np.power(x, y) x 的 y 次
2、对数
np.log(x) 以e为底
np.log2(x) 以2位底
np.log10(x) 以10为底
二、高级通用函数
1、指定输出:
>>>x = np.arange(5)
>>>y = np.empty(5)
>>>np.multiply(x, 10, out=y)
array([ 0., 10., 20., 30., 40.])
指定 y 为输出数组
2、聚合——reduce()
>>> np.multiply.reduce([2,3,5])
30
详情看官方文档。
3、外积——outer()
>>>x = np.arange(1, 6)
>>>np.multiply.outer(x, x)
array([[ 1, 2, 3, 4, 5],
[ 2, 4, 6, 8, 10],
[ 3, 6, 9, 12, 15],
[ 4, 8, 12, 16, 20],
[ 5, 10, 15, 20, 25]])