🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

4311閲覧

TypeError: 'int' object is not subscriptableの対処

pytho____555

総合スコア20

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/01/02 16:52

python

1def plot_image(i, predictions_array, true_label, img): 2 predictions_array, true_label, img = predictions_array[i], true_label[i], img[i] 3 plt.grid(False) 4 plt.xticks([]) 5 plt.yticks([]) 6 7 plt.imshow(img, cmap=plt.cm.binary) 8 9 predicted_label = np.argmax(predictions_array) 10 if predicted_label == true_label: 11 color = 'blue' 12 else: 13 color = 'red' 14 15 plt.xlabel("{} {:2.0f}% ({})".format(num_classes[predicted_label], 16 100*np.max(predictions_array), 17 num_classes[true_label]), 18 color=color)

plt.xlabel("{} {:2.0f}% ({})".format(num_classes[predicted_label],においてTypeError: 'int' object is not subscriptableと言われたのですが、添字表記に対応していないものがどれなのかわかりません。申し訳ありませんが、よろしくお願いします。

参考サイト
関数での'int' object is not subscriptableへの対処

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

print(type(num_classes), num_classes)
を入れて内容を確認してみてください。
num_classes が整数値だと同様のエラーになります。

python

1>>> num_classes = 123 2>>> num_classes[0] 3Traceback (most recent call last): 4 File "<stdin>", line 1, in <module> 5TypeError: 'int' object is not subscriptable

投稿2020/01/02 16:57

shiracamus

総合スコア5406

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pytho____555

2020/01/02 17:04

<class 'int'> 10 と返ってきました。 対処法もわかりませんので、可能でありましたらよろしくお願いいたします。
shiracamus

2020/01/02 17:22 編集

num_classes には本来どんなデータが入っているべきなのですか? どんな処理でそのデータを作り出しているのですか? 私にはまったくわかりません。
shiracamus

2020/01/02 17:31

10 が正しい値なのであれば配列アクセスはできません。 num_classes[predicted_label] ではなく num_classes にすればいいのではありませんか?
pytho____555

2020/01/02 17:39

ありがとうございます。 num_classes[predicted_label],num_classes[true_label]をnum_classesとしたらそこの部分のエラーは取れました。どうしてそこの部分を取ると良いのでしょうか。お手数ですが教えていただけると助かります。
shiracamus

2020/01/02 17:42

添字は配列に使う物です。 整数値の 10 は配列ではありません。 >>> [10, 20, 30][0] 10 >>> [10, 20, 30][1] 20 >>> [10, 20, 30][2] 30 >>> 10[0] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not subscriptable
pytho____555

2020/01/02 17:45

なるほど!たいへんよくわかりました!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問