将较小的np.array添加到较大的np.array

时间:2019-09-08 14:53:14

标签: python

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)?

1 个答案:

答案 0 :(得分:4)

NumPy不只是假设您可能想在将b添加到a之前重复它,您必须告诉它自己这样做。

您可以执行此操作的系统称为broadcasting。通过添加长度与b完全相同的另一个轴来创建2D数组。将b添加到该2D数组中便具有所需的行为。

然后我们将阵列展平为1D。

(a.reshape(-1, len(b)) + b).ravel()