Numpy添加两个不同大小的向量

tnt*_*tnt 23 python numpy linear-algebra

如果我有两个不同大小的numpy数组,我怎么能叠加它们.

a = numpy([0, 10, 20, 30])
b = numpy([20, 30, 40, 50, 60, 70])
Run Code Online (Sandbox Code Playgroud)

添加这两个向量以生成新向量(20,40,60,80,60,70)的最简洁方法是什么?

这是我的一般性问题.对于背景,我特别应用了格林变换函数,并且需要将每个时间步骤的结果叠加到先前累积的响应中.

650*_*502 24

这可能就是你要找的东西

if len(a) < len(b):
    c = b.copy()
    c[:len(a)] += a
else:
    c = a.copy()
    c[:len(b)] += b
Run Code Online (Sandbox Code Playgroud)

基本上你复制较长的一个,然后在原地添加较短的一个


Eri*_*son 11

如果您知道b更高的维度,那么:

>>> a.resize(b.shape)
>>> c = a+b
Run Code Online (Sandbox Code Playgroud)

是你所需要的全部.

  • 只有在没有对"a"的其他引用时,这才有效.很多时候有内部参考,你不知道. (4认同)