Страницы

Поиск по вопросам

суббота, 21 декабря 2019 г.

Как работает функция numpy.dot

#python #python_3x #numpy


Помогите разобраться с функцией  numpy.dot. Как то не очень понятно описание в документации.
Эта функция работает так же как описано в этой статье?

Есть следующий код:  

Nj   = 100
Nin = 100

Xin = np.zeros((Nin,1))
Winj = np.zeros((Nin,Nj))

WinjT  = np.transpose(Winj)
Uj = np.dot(WinjT,Xin)  


По идее должен получиться массив Uj с числом строк Nj и 1 столбцом, но получается
двумерный массив.
 Часть кода идущая после инициализации прощена, так как не имеет отношения к вопросу.
    


Ответы

Ответ 1



произведение скаляров: In [60]: np.dot(2, 3) Out[60]: 6 произведение 1D массивов (векторов): In [61]: a = np.array([1, 2]) In [62]: b = np.array([10, 11]) In [63]: np.dot(a, b) Out[63]: 32 произведение 2D массивов: In [64]: a = np.array([[1,2], [3,4]]) In [65]: b = np.array([[2,3], [4,5]]) In [66]: a Out[66]: array([[1, 2], [3, 4]]) In [67]: b Out[67]: array([[2, 3], [4, 5]]) In [68]: np.dot(a, b) Out[68]: array([[10, 13], [22, 29]]) Пояснение: 10: 1*2 + 2*4 13: 1*3 + 2*5 22: 3*2 + 4*4 29: 3*3 + 4*5 Ваш пример: In [69]: %paste Nj = 100 Nin = 100 Xin = np.zeros((Nin,1)) Winj = np.zeros((Nin,Nj)) WinjT = np.transpose(Winj) Uj = np.dot(WinjT,Xin) ## -- End pasted text -- Получился 2D массив, состоящий из 100 строк и одного столбца: In [70]: Uj.shape Out[70]: (100, 1)

Комментариев нет:

Отправить комментарий