Python 小点抛出错误
我有两个相同维度的numpy数组。当我尝试在它们上使用点积时,我得到了“形状未对齐”错误 有人能告诉我为什么吗Python 小点抛出错误,python,numpy,array-broadcasting,Python,Numpy,Array Broadcasting,我有两个相同维度的numpy数组。当我尝试在它们上使用点积时,我得到了“形状未对齐”错误 有人能告诉我为什么吗 谢谢行与列相乘。您应该首先将行转换为列: import numpy as np A = np.array([[2,4,6]]) Y = np.array([[1,0,1]]) np.dot(Y, A.T) 但是,对于矩阵运算,最好使用矩阵而不是数组: import numpy as np A = np.matrix([[2,4,6]]) Y = np.matrix([[1,0,1
谢谢行与列相乘。您应该首先将行转换为列:
import numpy as np
A = np.array([[2,4,6]])
Y = np.array([[1,0,1]])
np.dot(Y, A.T)
但是,对于矩阵运算,最好使用矩阵
而不是数组
:
import numpy as np
A = np.matrix([[2,4,6]])
Y = np.matrix([[1,0,1]])
Y.dot(A.T)
(1,3)x(3,1)或(3,1)x(1,3)都是可能的。尝试np.dot(Y,A.T)或np.dot(Y.T,A),其中
.T
返回转置数组。或者将它们定义为1d向量:A=np.array([2,4,6])
(只有一组括号)不建议使用np.matrixThanks作为答案。我知道转置它们会起作用,但我的问题是为什么即使维度相同,它也会抛出错误。根据广播规则,如果两个维度都相同,它应该可以工作。@AbinJohnThomas,广播规则不适用于np.dot
。它有自己的维度规则。读它们。
import numpy as np
A = np.matrix([[2,4,6]])
Y = np.matrix([[1,0,1]])
Y.dot(A.T)