NumPy 中的向量加法
Manav Narula
2023年1月30日
-
在 NumPy 中使用
numpy.add()
函式執行向量加法 -
在 NumPy 中使用
numpy.ndarray.__add__()
函式執行向量加法 -
在 NumPy 中使用
+
操作符來執行向量加法 - 兩個陣列大小不相等時該怎麼辦
列表的一維陣列可以視為向量。在 Python 中,我們使用 numpy 模組對陣列執行不同的操作。
在本教程中,我們將討論如何在 Python 中執行向量加法。
當我們說向量加法時,意味著要新增兩個陣列。在下面討論的所有方法中,陣列的長度必須相同。否則,將引發 ValueError。
在 NumPy 中使用 numpy.add()
函式執行向量加法
numpy 模組中的 add()
函式可用於新增兩個陣列。它對具有相同大小的陣列執行加法運算,並且將每個對應位置的元素求和。
例如,
import numpy as np
arr1 = np.array([3, 2, 1])
arr2 = np.array([1, 2, 3])
s = np.add(arr1, arr2)
print(s)
輸出:
[4 4 4]
在 NumPy 中使用 numpy.ndarray.__add__()
函式執行向量加法
numpy.ndarray.__add__()
函式用於向陣列的每個元素新增一些值。我們可以通過將第二個陣列傳遞給此函式來使用它執行向量加法。
例如,
import numpy as np
arr1 = np.array([3, 2, 1])
arr2 = np.array([1, 2, 3])
s = arr1.__add__(arr2)
print(s)
輸出:
[4 4 4]
在 NumPy 中使用+
操作符來執行向量加法
我們可以通過簡單地使用算術運算子+
來計算兩個陣列的總和,從而避免使用任何函式。
例如,
import numpy as np
arr1 = np.array([3, 2, 1])
arr2 = np.array([1, 2, 3])
s = arr1 + arr2
print(s)
輸出:
[4 4 4]
兩個陣列大小不相等時該怎麼辦
前面已經討論過,如果陣列的大小不同,則上述所有方法都將返回 ValueError。在這種情況下,我們可以手動用 0 填充較小的陣列,或者使用 numpy.pad()
函式正常執行加法,或者建立我們自己的函式執行加法。
請參見下面的程式碼。
import numpy as np
a = np.array([3, 2, 1])
b = np.array([1, 2])
def unequal_add(a, b):
if len(a) < len(b):
c = b.copy()
c[: len(a)] += a
else:
c = a.copy()
c[: len(b)] += b
return c
print(unequal_add(a, b))
輸出:
[4 4 1]
我們要做的是複製較長的陣列,然後將較小陣列的元素新增到較長的陣列中。此方法將消耗大量記憶體。
作者: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn