ValueError:matmul:输入操作数1的核心维0不匹配,具有gufunc签名(n?,k),(k,m?)->(n?,m?)(大小1与3不同)

时间:2019-12-13 06:29:33

标签: python python-3.x numpy

我已经使用matmul编写了代码,但是出现以下错误:

   "ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 1 is different from 3)"

代码:

    R = [[0.40348195], [0.38658295], [0.82931052]]
    V = [0.33452744, 0.33823673, 0.32723583]
    print("Rt_p: ", R)
    B = np.matmul(V,np.transpose(R))/pow(LA.norm(R), 2)
    print("B", B)

2 个答案:

答案 0 :(得分:3)

尝试检查您的 X_train 形状,然后检查您输入到 .predict() 函数中的测试数据的形状。如果特征的数量不同,比如 X_train(2323,22) 和测试数据 (3534,20) 那么它会显示这种类型的错误

答案 1 :(得分:1)

您正在将3行1列的Matrix转换为3列1行的Matrix。 然后,将其与类似的矩阵(也是3列1行)混合使用,这在数学上是不正确的。因此,您可以删除转置函数或将R矩阵定义为1行3列,然后对其进行转置。检查this以获得更多信息。