这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战
Numpy数学运算:
- add(array, array2) In [1]: import numpy as np
两个数值直接相加类似Python的相加
In [2]: np.add(1.0, 4.0 )
Out[2]: 5.0
In [3]: data1 = np.arange(9.0)
In [4]: data1
Out[4]: array([0., 1., 2., 3., 4., 5., 6., 7., 8.])
In [5]: data1.shape = 3,3
In [6]: data1
Out[6]:
array([[0., 1., 2.],
[3., 4., 5.],
[6., 7., 8.]])
In [7]: data2 = np.arange(3.0)
In [9]: data2
Out[9]: array([0., 1., 2.])
当两个数值的shape不一样时,小的数组会广播到大的数组中
In [11]: data1 + data2
Out[11]:
array([[ 0., 2., 4.],
[ 3., 5., 7.],
[ 6., 8., 10.]])
In [12]: data1
Out[12]:
array([[0., 1., 2.],
[3., 4., 5.],
[6., 7., 8.]])
In [13]: data2
Out[13]: array([0., 1., 2.])
In [14]: data1+data2
Out[14]:
array([[ 0., 2., 4.],
[ 3., 5., 7.],
[ 6., 8., 10.]])
使用add方法进行相加
In [15]: np.add(data1, data2)
Out[15]:
array([[ 0., 2., 4.],
[ 3., 5., 7.],
[ 6., 8., 10.]])
In [16]: data1
Out[16]:
array([[0., 1., 2.],
[3., 4., 5.],
[6., 7., 8.]])
In [17]: data2
Out[17]: array([0., 1., 2.])
In [18]: data3 = np.arange(9.0).reshape((3,3))
In [19]: data3
Out[19]:
array([[0., 1., 2.],
[3., 4., 5.],
[6., 7., 8.]])
In [20]: data1
Out[20]:
array([[0., 1., 2.],
[3., 4., 5.],
[6., 7., 8.]])
相同的shape的两个数组会对应位置进行相加运算
In [21]: data1 + data3
Out[21]:
array([[ 0., 2., 4.],
[ 6., 8., 10.],
[12., 14., 16.]])
- subtract 两个数组相减运算
In [23]: np.subtract(5, 4)
Out[23]: 1
In [24]: data1 = np.arange(9).reshape((3,3))
In [25]: data1
Out[25]:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
In [26]: data2 = np.arange(3)
In [27]: data2
Out[27]: array([0, 1, 2])
不同shape的数组相减:小数组会被应用到大数组
In [28]: np.subtract(data1, data2)
Out[28]:
array([[0, 0, 0],
[3, 3, 3],
[6, 6, 6]])
In [29]: data1 - data2
Out[29]:
array([[0, 0, 0],
[3, 3, 3],
[6, 6, 6]])
In [30]: data3 = np.arange(9).reshape((3,3))
In [31]: data3
Out[31]:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
In [32]: data1-data2
Out[32]:
array([[0, 0, 0],
[3, 3, 3],
[6, 6, 6]])
In [33]: data1
Out[33]:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
In [34]: data2
Out[34]: array([0, 1, 2])
shape相同的数据相减对应位置进行相减运算
In [35]: data1-data3
Out[35]:
array([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
In [36]: np.subtract(data1, data3)
Out[36]:
array([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])