算数计算
NumPy 提供许多算数计算的方法,可以很快速的将数组中的元素进行加减乘除、余数、倒数、商...等算数计算,这篇教学将会介绍 NumPy 常用的算术计算方法。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
算数计算的方法
下方列出几种 NumPy 常用的算术计算方法 ( 参考 NumPy 官方文件:Arithmetic operations ):
| 方法 | 参数 | 说明 |
|---|---|---|
| numpy.add() | a、b | 将两个形状相同的数组元素“相加”成为新数组。 |
| numpy.subtract() | a、b | 将两个形状相同的数组元素“相减”成为新数组。 |
| numpy.multiply() | a、b | 将两个形状相同的数组元素“相乘”成为新数组。 |
| numpy.divide() | a、b | 将两个形状相同的数组元素“相除”成为新数组。 |
| numpy.floor_divide() | a、b | 将两个形状相同的数组元素相除,“无条件舍弃小数”后成为新数组。 |
| numpy.power() | a、b | 以 b 数组的元素作为 a 数组元素的次方,计算后成为新数组。 |
| numpy.mod() | a、b | 将两个形状相同的数组元素相除,取得“余数”后成为新数组。 |
| numpy.divmod() | a、b | 将两个形状相同的数组元素相除,将“商”和“余数”回传为新数组。 |
| numpy.reciprocal() | a | 回传数组中所有元素的“倒数”为新数组。 |
| numpy.positive()、numpy.negative() | a | 将数组元素乘以 1 或乘以 -1 后,回传为新数组。 |
numpy.add()
numpy.add() 会将两个形状相同的数组元素“相加”成为新数组,下方的例子会将两个一维数组数组相加成为 c,两个二维数组 x 和 y 相加成为 z。
import numpy as np
a = np.array([1,1,1])
b = np.array([2,2,2])
c = np.add(a,b)
print(c) # [3 3 3]
x = np.array([[1,1],[1,1]])
y = np.array([[2,2],[3,3]])
z = np.add(x,y)
print(z) # [[3 3] [4 4]]
numpy.subtract()
numpy.subtract() 会将两个形状相同的数组元素“相减”成为新数组,下方的例子会将两个一维数组数组相减成为 c,两个二维数组 x 和 y 相减成为 z。
import numpy as np
a = np.array([1,1,1])
b = np.array([2,2,2])
c = np.subtract(a,b)
print(c) # [-1 -1 -1]
x = np.array([[1,1],[1,1]])
y = np.array([[2,2],[3,3]])
z = np.subtract(x,y)
print(z) # [[-1 -1] [-2 -2]]
numpy.multiply()
numpy.multiply() 会将两个形状相同的数组元素“相乘”成为新数组,下方的例子会将两个一维数组数组相乘成为 c,两个二维数组 x 和 y 相乘成为 z。
import numpy as np
a = np.array([1,2,3])
b = np.array([2,2,2])
c = np.multiply(a,b)
print(c) # [2 4 6]
x = np.array([[2,3],[2,3]])
y = np.array([[2,2],[3,3]])
z = np.multiply(x,y)
print(z) # [[4 6] [6 9]]
numpy.divide()
numpy.divide() 会将两个形状相同的数组元素“相除”成为新数组,下方的例子会将两个一维数组数组相除成为 c,两个二维数组 x 和 y 相除成为 z。
import numpy as np
a = np.array([5,6,7])
b = np.array([2,2,2])
c = np.divide(a,b)
print(c) # [2.5 3. 3.5]
x = np.array([[5,6],[7,8]])
y = np.array([[2,3],[4,5]])
z = np.divide(x,y)
print(z) # [[2.5 2. ] [1.75 1.6 ]]
numpy.floor_divide()
numpy.divide() 会将两个形状相同的数组元素相除,“无条线舍去小数点”后成为新数组,下方的例子会将两个一维数组数组相除成为 c。
import numpy as np
a = np.array([5,6,7])
b = np.array([2,2,2])
c = np.floor_divide(a,b) # [2 3 3]
numpy.power()
numpy.power() 会以 b 数组的元素作为 a 数组元素的次方,计算后成为新数组,下方的例子会回传 2、3、4 的 3 次方。
import numpy as np
a = np.array([2,3,4])
b = np.array([3,3,3])
c = np.power(a,b)
print(c) # [ 8 27 64]
numpy.mod()
numpy.mod() 会将两个形状相同的数组元素相”,取得“余数”后成为新数组。
import numpy as np
a = np.array([2,3,4])
b = np.array([3,3,3])
c = np.mod(a,b)
print(c) # [2 0 1]
numpy.divmod()
numpy.divmod() 会将两个形状相同的数组元素相除,将“商”和“余数”回传为新数组。
import numpy as np
a = np.array([2,3,4])
b = np.array([3,3,3])
c = np.divmod(a,b)
print(c) # (array([0, 1, 1]), array([2, 0, 1]))
numpy.reciprocal()
numpy.reciprocal() 会回传数组中所有元素的“倒数”为新数组 ( 倒数表示几分之一 )。
注意,倒数的方法只适用于“浮点数”的数值。
import numpy as np
a = np.array([2., 3., 4., 5., 6.])
b = np.reciprocal(a)
print(b) # [0.5 0.33333333 0.25 0.2 0.16666667]
numpy.positive()、numpy.negative()
numpy.positive()、numpy.negative() 会将数组元素乘以 1 或乘以 -1 后,回传为新数组,下方的例子 numpy.positive() 执行后内容不会改变,numpy.negative() 则会将原本项目的正负值颠倒。 。
import numpy as np
a = np.array([-2,-1,0,1,2])
b = np.positive(a)
c = np.negative(a)
print(b) # [-2 -1 0 1 2]
print(c) # [ 2 1 0 -1 -2]
微信扫码关注
抖音扫码关注