Numpy 中的向量加法

  1. 在 Numpy 中使用 numpy.add() 函数执行向量加法
  2. 在 Numpy 中使用 numpy.ndarray.__add__() 函数执行向量加法
  3. 在 Numpy 中使用+ 操作符来执行向量加法
  4. 两个数组大小不相等时该怎么办

列表的一维数组可以视为向量。在 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]

我们要做的是复制较长的数组,然后将较小数组的元素添加到较长的数组中。此方法将消耗大量内存。