在 R
中,我可以轻松地将较小的向量添加到较大的向量(假设较大向量的长度是较小向量长度的倍数)
a <- seq(1,10,1)
# [1] 1 2 3 4 5 6 7 8 9 10
b <- seq(1,2,1)
# [1] 1 2
a+b
# [1] 2 4 4 6 6 8 8 10 10 12
在 Python
中有没有一种简单的方法可以做到这一点?
import numpy as np
a = np.arange(1, 10)
# array([1, 2, 3, 4, 5, 6, 7, 8, 9])
b = np.arange(1,4)
# array([1, 2, 3])
我尝试过的
a + b?
np.add(a, b)?
最佳答案
NumPy 不会简单地假设您可能希望在将其添加到 a
之前重复 b
,您必须自己告诉它这样做。
可以执行此操作的系统称为 broadcasting .您可以通过添加另一个长度与 b
完全相同的轴来创建一个二维数组。将 b
添加到该二维数组具有完全所需的行为。
然后我们将数组展平为一维。
(a.reshape(-1, len(b)) + b).ravel()
关于python - 将小的 np.array 添加到更大的 np.array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57843027/