>>> a = np.array([1,2,3])
>>> b = np.array([2,3,4])
>>> np.dot(a, b)
20
>>> A = np.array([[1,2],[2,3],[3,4]]) # 3x2
>>> B = np.array([[1,2,3],[2,3,4]]) # 2x3
>>> np.dot(A, B)
array([[ 5, 8, 11],
[ 8, 13, 18],
[11, 18, 25]])
Wie oben gezeigt, ergibt "numpy.dot" mit zwei 1d-Arrays ein inneres Produkt, und zwei 2d-Arrays ergeben ein Matrixprodukt. Was ist, wenn ich ein 1d-Array und ein 2d-Array übergebe?
>>> A = np.array([[1,2],[2,3],[3,4]]) # 3x2
>>> b = np.array([1,2,3])
>>> np.dot(b, A)
array([14, 20])
Das an das erste Argument "b" übergebene 3D 1d-Array wird wie ein 1x3 2d-Array behandelt. Das Matrixprodukt wird in ein 1d-Array konvertiert und zurückgegeben.
>>> A = np.array([[1,2],[2,3],[3,4]]) # 3x2
>>> B = np.array([[1,2,3]]) #1x3
>>> np.dot(B, A)
array([[14, 20]])
>>> A = np.array([[1,2],[2,3],[3,4]]) # 3x2
>>> b = np.array([1,2])
>>> np.dot(A, b)
array([ 5, 8, 11])
Wenn es an das zweite Argument übergeben wird, wird es wie ein 2x1 2d-Array behandelt.
>>> A = np.array([[1,2],[2,3],[3,4]]) # 3x2
>>> B = np.array([[1],[2]]) # 2x1
>>> np.dot(A, B)
array([[ 5],
[ 8],
[11]])
N-dimensionales 1d-Array ist
Recommended Posts