Я не могу понять детали официального документа "numpy .ndarray.dot" - PullRequest
0 голосов
/ 11 июля 2020

enter image description here

The document is here https://numpy.org/doc/stable/reference/generated/numpy.ndarray.dot.html

Я думаю, что второй результат должен быть: array ([[4., 4.], [4., 4.]])

, а не: array ([[8., 8.], [8., 8.]])

1 Ответ

2 голосов
/ 11 июля 2020

Результат со всеми восьмерками правильный. Возможно, вы перепутали поэлементное умножение и умножение матриц. numpy.dot выполняет матричное умножение (когда применяется к 2D-массивам).

a = np.eye(2)
b = np.ones((2,2)) * 2
print(a)
print(b)

даст вам

[[1. 0.]
 [0. 1.]]
[[2. 2.]
 [2. 2.]]

Итак, b - это матрица, состоящая из всех двоек. Теперь просто выполните матричное умножение a * b * b, и вы получите матрицу, состоящую из всех восьмерок.

a.dot(b) приведет к

[[2. 2.]
 [2. 2.]]

, а a.dot(b).dot(b) даст

[[8. 8.]
 [8. 8.]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...