web-dev-qa-db-ja.com

Numpyサイズの異なる2つのベクトルを追加する

サイズの異なる2つのnumpy配列がある場合、どうすればそれらを重ね合わせることができますか。

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

これらの2つのベクトルを追加して新しいベクトル(20、40、60、80、60、70)を生成する最もクリーンな方法は何ですか?

これは私の一般的な質問です。背景として、私は特にGreenの変換関数を適用しており、評価の各タイムステップの結果を以前に蓄積された応答に重ね合わせる必要があります。

24
tnt

これはあなたが探しているものかもしれません

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

基本的に、長い方をコピーしてから、短い方をインプレースで追加します

26
6502

bが高次元であることがわかっている場合は、次のようにします。

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

は、あなたが必要とすることすべてです。

11
Eric Wilson