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