簡體   English   中英

Numpy 將兩個不同大小的向量相加

[英]Numpy Adding two vectors with different sizes

如果我有兩個不同大小的 numpy 數組,我該如何疊加它們。

a = numpy([0, 10, 20, 30])
b = numpy([20, 30, 40, 50, 60, 70])

將這兩個向量相加以生成新向量 (20, 40, 60, 80, 60, 70) 的最簡潔方法是什么?

這是我的一般問題。 對於背景,我專門應用了格林變換函數,並且需要將評估中每個時間步的結果疊加到先前累積的響應上。

這可能是您正在尋找的

if len(a) < len(b):
    c = b.copy()
    c[:len(a)] += a
else:
    c = a.copy()
    c[:len(b)] += b

基本上你復制較長的,然后就地添加較短的

如果你知道b是更高維度,那么:

>>> a.resize(b.shape)
>>> c = a+b

是你所需要的全部。

與上面的非常相似,但更緊湊一點:

l = sorted((a, b), key=len)
c = l[1].copy()
c[:len(l[0])] += l[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM