この問題を解決する方法に関する他の記事を調べてみましたが、何らかの理由でどこにもアクセスできません。 「TypeError:リストインデックスはタプルではなく整数またはスライスである必要があります」というエラーが発生し、コード内で誰かが理由を指摘できるかどうかを確認したかった。
前もって感謝します!
nb_users = int(max(max(training_set[:,0]), max(test_set[:,0])))
nb_movies = int(max(max(training_set[:,1]), max(test_set[:,1])))
def convert(data):
new_data = [] expects that. 1 list per user
for id_users in range(1, nb_users + 1):
id_movies = data[:,1][data[:,0] == id_users]
id_ratings = data[:,2][data[:,0] == id_users]
ratings = np.zeros(nb_movies)
ratings[id_movies - 1] = id_ratings
new_data.append(list(ratings))
return new_data
training_set = convert(training_set)
test_set = convert(test_set)
TypeError: Traceback (most recent call last)
<ipython-input-35-d2825f049d11> in <module>()
3
4 #take max user id/movie id for total numbers for test and train set.
----> 5 nb_users = int(max(max(training_set[:,0]), max(test_set[:,0])))
6 nb_movies = int(max(max(training_set[:,1]), max(test_set[:,1])))
7
TypeError: list indices must be integers or slices, not tuple
回答 1 件
関連記事
- Pythonで「TypeError:タプルインデックスは整数またはスライスでなければなりません」エラーを解決する方法
- TypeError:リストインデックスは整数またはスライスである必要があり、画像処理中のタプルエラーではありません
- TypeError:リストインデックスはButton Tkinterではなく、整数またはスライスである必要があります
- TypeError:cx_Freezeでpyファイルをexeに変換しようとするとき、リストインデックスはstrではなく整数またはスライスでなければなりません
- TypeError:リストインデックスは、str、discord pyではなく、整数またはスライスである必要があります
- TypeError:タプルインデックスは、pysparkとRDDを使用したstrではなく整数でなければなりません
- TypeErrorを解決する方法:Pythonを使用して特定の行を削除するときは、文字列インデックスを整数にする必要がありますか?
- TypeErrorの取得:文字列インデックスは整数である必要があります。理由がわからない
- Python 2D配列リストのインデックスは、タプルではなく整数またはスライスである必要があります
training_set
を使用しているようです パンダのデータフレームとしてですが、実際にはリストです。最初にデータフレームに変換する必要があります。そしてこれを行う方法は
training_set
の構造に依存します の要素。たとえば、それらが辞書である場合、これを行うことができます:そして、
training_set_df
を使用しますtraining_set
の代わりに 。