#numpy #np
#python #numpy
Вопрос:
Я новичок в numpy
библиотеке.
Как значения преобразуются для получения выходных данных ниже и внутренне, как изменяются значения?
>>> np.convolve([1, 2, 3], [0, 1, 0.5])
o/p: array([ 0. , 1. , 2.5, 4. , 1.5])
Комментарии:
1. Разве это не объяснено в документации ?
2. я видел документацию. но мой вопрос в том, каким будет результат.
Ответ №1:
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
Комментарии:
1. на шаге 1: как вы вычисляли. и в v [i], я имею в виду .
2. можете ли вы объяснить это глубоко. пожалуйста
3. На шаге 1 мы получили [0, 0, 0] через v[0]. * a = 0.*[1, 2, 3], т.е. [0*1, 0*2, 0*3]; На шаге 2, [1, 2, 3] = v[1]. *a = 1.*[1, 2, 3] = [1, 2, 3]; На шаге 3, [0.5, 1, 1.5] = v[2].*a = 0.5.*[1, 2, 3] = [0.5, 1, 1.5];