2017-01-19 5 views
1

私はそうのような2つの配列の内積を計算しようとしている: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'>

の両方が任意のアイデアですか?

ありがとうございます!

+0

'self.ratings'と' self.v_ksi'のタイプは何ですか? – Aaron

+0

@Aaron 'numpy.ndarray'の両方で – Taimur

+0

あなたの問題は別の場所になければならないと言えるでしょう。これが正しいからです。もっと小さな完全なテストスクリプトで問題を再現できますか? – Aaron

答えて

1

ほとんどの場合、エラーは、実際にコードのこの部分から来ている:

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

エラーメッセージがちょうど紛らわしいエラーが発生した論理行の最後の物理回線を指します。

おそらくself.thetaの代わりにself.v_thetaを意味しました。

+0

スポットをオンにして解決しました。愚かな私... ありがとう! – Taimur

関連する問題