算數計算
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]
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~