numpy 点积 ValueError: shapes (3,2) and (3,) not aligned: 2 (dim 1) != 3 (dim 0)

numpy 矩阵点积时,经常遇到这样的错误:

ValueError: shapes (3,2) and (3,) not aligned: 2 (dim 1) != 3 (dim 0)

这表示点积左边的矩阵维度(dim) 是 3 * 2 的,而右边的数组有 3 个元素,2 != 3,于是报错。这时可以将右边的数组移到点积的左边,于是变成了 3 个元素的数组和 3 * 2 的矩阵的点积,此时 3 = 3,便不会报错了。数组和矩阵做点积时,需要相邻的数字相等,否则就会报上面的错误。

numpy 点积 ValueError: shapes (3,2) and (3,) not aligned: 2 (dim 1) != 3 (dim 0)_第1张图片 numpy 点积 ValueError: shapes (3,2) and (3,) not aligned: 2 (dim 1) != 3 (dim 0)_第2张图片

numpy.ndarray 进行星乘时,如果维度对不上,提示的错误则如下所示:

ValueError: operands could not be broadcast together with shapes (3,) (2,2) 

关于 点积 和 星乘 之间的区别,参考文章numpy 中 的 星乘(*) 和 点乘(.dot) 点积 和 向量乘法(外积)

你可能感兴趣的:(机器学习,即查即用)