Python数据分析系列之Numpy基础知识第三篇

140 阅读2分钟

这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战

Numpy数学运算:

  1. 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.]])

  1. 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]])