3

私は2つのアレイを持っています、

a = [3, 6, 8, 2, 5, 5]
b = [2, 7, 9]

cそして、値を取得して次のように追加する新しい配列を作成する必要がありますa[0+0]*b[0] + a[0+1]*b[1] + a[0+2]*b[2] = (3*2) + (6*7) + (9*8) = 6 + 42 + 72c[0] = 120

私を正しい方向に向けるためにこれを行う方法に完全に迷っています。

4

4 に答える 4

1
total = 0
for n in range(0, min(len(a), len(b))):
    total += a[n] * b[n]

範囲関数

于 2012-11-19T05:13:02.570 に答える
1

もしもc[k] = a[k+0]*b[0] + a[k+1]*b[1] + a[k+2]*b[2]

それから

>>> c = [sum(i*j for i,j in zip(a[k:], b)) for k in range(4)]
>>> c
[120, 86, 75, 84]
于 2012-11-19T05:20:30.230 に答える
1

これはあなたが望むことをすると思います。@DukeSilver の回答からコードの一部を借りて、単一の値を計算するだけでなく、リストを作成します。私の仮定では、それaは常により長いですb

c = [sum(a[i+j]*b[j] for j in range(len(b))) for i in range(len(a) - len(b) + 1)]
于 2012-11-19T05:24:07.757 に答える
0

numpy.convolveまたは、独自の関数を作成しますか?

于 2012-11-19T05:46:33.630 に答える