np.convolve(a, v, mode='full')
функция просто толкает первый массив a
, скользя по второму массиву v
шаг за шагом слева направо.На каждом шаге мы просто вычисляем v[i]*a
и получаем v[i]a[0], v[i]a[1], ..., v[i]a[n]
.Мы получаем len(v)
массивов / списков, складывая их вместе.
Результат np.convolve([1, 2, 3], [0, 1, 0.5])
рассчитывается следующим образом:
шаг 1:
1, 2, 3
0, 1, 0.5
a=0, 0, 0,
шаг два:
1, 2, 3
0, 1, 0.5
b=0, 1, 2, 3,
шаг третий:
1, 2, 3
0, 1, 0.5
c=0, 0, 0.5, 1, 1.5
наконец, добавив a
, b
и c
:
0, 0, 0,
+ 0, 1, 2, 3,
+ 0, 0, 0.5, 1, 1.5
-------------------
= 0, 1, 2.5, 4, 1.5