Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 小点抛出错误_Python_Numpy_Array Broadcasting - Fatal编程技术网

Python 小点抛出错误

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

我有两个相同维度的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]])
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)