Python Numpy点积结果为`索引器:仅整数、切片`

Python Numpy点积结果为`索引器:仅整数、切片`,python,arrays,numpy,Python,Arrays,Numpy,我试图计算两个数组的点积,如下所示: for i in range(self.v_theta['shape'].shape[0] - 1): for j in range(self.v_theta['shape'].shape[1] - 1): self.theta['shape'][i, j] = \ self.ratings[:, i].dot(self.v_ksi[:, i, j]) 但是我得到了以下错误: self.ratings[:, i].

我试图计算两个数组的点积,如下所示:

for i in range(self.v_theta['shape'].shape[0] - 1):
   for j in range(self.v_theta['shape'].shape[1] - 1):
       self.theta['shape'][i, j] = \
           self.ratings[:, i].dot(self.v_ksi[:, i, j])
但是我得到了以下错误:

self.ratings[:, i].dot(self.v_ksi[:, i, j])
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
我检查了
I
j
的类型,它们肯定是整数,冒号肯定是切片。我还仔细检查了阵列的形状,上面的设置对于dot产品来说绝对是合法的

self.ratings
self.v_ksi
都属于

有什么想法吗


谢谢

最有可能的错误实际上来自代码的这一部分:

        self.theta['shape'][i, j] = \
        ^^^^^^^^^^^^^^^^^^^
错误消息只是混淆地指向发生错误的逻辑行的最后一个物理行


也许你的意思是
self.v_theta
而不是
self.theta

self.ratings
self.v_ksi
?@Aaron
numpy.ndarray
因为据我所知,你的问题肯定在别处,因为这是正确的。。你能用一个较小的完整测试脚本(你可以全部发布)重现问题吗?请尝试提供一个,在最佳情况下,它应该是可复制和粘贴的。