Я думаю, что вы, возможно, пытаетесь умножить 2 матрицы с формой (r1,c)
и (c,r2)
. Вы можете использовать A.dot(B)
для вашей задачи, которая будет умножать на 2 матрицы.
Вот пример:
>>> a = np.arange(12).reshape((3,4))
>>> b = np.arange(8).reshape((4,2))
>>> a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> b
array([[0, 1],
[2, 3],
[4, 5],
[6, 7]])
>>> a.dot(b)
array([[ 28, 34],
[ 76, 98],
[124, 162]])
Надеюсь, это поможет вам!
Редактировать
Поскольку вам не нужны несколько 2 матриц, вы хотитеумножать на скалярные, но множественные скаляры не являются вашей операцией, это означает, что вы не можете умножить 2 матрицы, например:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
умножить на
array([[0, 1],
[2, 3],
[4, 5]])
Это недопустимая операциядля нескольких скаляров 2.
У вас есть только операции:
>>> a = np.arange(12).reshape((3,4))
>>> a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
# Multiple all elements with a scalar
>>> np.multiply(a,0)
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
# Multiple each column with a column
>>> b = np.arange(3).reshape((3,1))
>>> b
array([[0],
[1],
[2]])
>>> np.multiply(a,b)
array([[ 0, 0, 0, 0],
[ 4, 5, 6, 7],
[16, 18, 20, 22]])
# Multiple each row with a row
>>> b = np.arange(4).reshape((1,4))
>>> b
array([[0, 1, 2, 3]])
>>> np.multiply(a,b)
array([[ 0, 1, 4, 9],
[ 0, 5, 12, 21],
[ 0, 9, 20, 33]])
# Multiple each element with the same shape
>>> b = np.arange(12).reshape((3,4))
>>> b
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> np.multiply(a,b)
array([[ 0, 1, 4, 9],
[ 16, 25, 36, 49],
[ 64, 81, 100, 121]])