2017-09-14 11 views
0

NumPyを使用して行列を掛け合わせると、うまくいきません。例えばなぜ3,2の行列に2、2の行列をNumPyで乗算できないのですか?

import numpy as np 

x = np.matrix('1, 2; 3, 8; 2, 9') 
y = np.matrix('5, 4; 8, 2') 

print(np.multiply(x, y)) 

は私がこれらの形状を掛けるが、なぜないことができないことを理解

Traceback (most recent call last): 
    File "vector-practice.py", line 6, in <module> 
    print(np.multiply(x, y)) 
ValueError: operands could not be broadcast together with shapes (3,2) (2,2) 

を返すことができますか?私はこれらの2つの行列を紙に掛けることができるので、なぜNumPyにはないのですか?私はここで何かを見逃していますか?

答えて

4

np.multiply引数を要素ごとに掛けます。、それは行列の乗算ではありません。行列がある場合、行列の乗算には*またはnp.dotを使用する必要があります。

x * y 
#matrix([[21, 8], 
#  [79, 28], 
#  [82, 26]]) 

np.dot(x, y) 
#matrix([[21, 8], 
#  [79, 28], 
#  [82, 26]]) 
関連する問題