В numpy как было бы преобразовать значения внутренне

#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];