Numpy dot产品导致`IndexError:只有整数,切片......`

时间:2017-01-19 17:23:55

标签: 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].dot(self.v_ksi[:, i, j])
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

我已经检查了ij的类型,它们肯定是整数,冒号肯定是切片。我还仔细检查了阵列的形状,上面的设置绝对是点积的合法。

self.ratingsself.v_ksi都属于<type 'numpy.ndarray'>

类型

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

        self.theta['shape'][i, j] = \
        ^^^^^^^^^^^^^^^^^^^

错误消息只是容易混淆地指向发生错误的逻辑行的最后一条物理线。

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