前提・実現したいこと
pythonでscikitのデータセットから取り出したリストをndarrayに変換してスライスで一部を取り出そうと思っているのですがエラーが発生してしまいうまくできません。解決策としてどうすれば良いのでしょうか。
発生している問題・エラーメッセージ
colaboratory
1IndexError Traceback (most recent call last) 2 3<ipython-input-1-b90196b600e7> in <module>() 4 4 digits = datasets.load_digits() 5 5 digits = np.array(digits) 6----> 6 c = digits[2:4,2:4,:] 7 7 print(c) 8 9IndexError: too many indices for array
pycharm
1Traceback (most recent call last): 2 File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.1.3\helpers\pydev\pydevd.py", line 1758, in <module> 3 main() 4 File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.1.3\helpers\pydev\pydevd.py", line 1752, in main 5 globals = debugger.run(setup['file'], None, None, is_module) 6 File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.1.3\helpers\pydev\pydevd.py", line 1147, in run 7 pydev_imports.execfile(file, globals, locals) # execute the script 8 File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.1.3\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile 9 exec(compile(contents+"\n", file, 'exec'), glob, loc) 10 File "C:/Users/noriy/PycharmProjects/hello1/main.py", line 13, in <module> 11 c = digits[2:4,2:4,:] 12IndexError: too many indices for array
arrayの要素数が多すぎるのでしょうか?
なおdatasetsのdigitsの概要は以下のようになります
Classes | 10 |
Samples per class | ~180 |
Samples total | 1797 |
Dimensionality | 64 |
Features | integers 0-16 |
該当のソースコード
python
1import numpy as np 2from sklearn import datasets 3 4digits = datasets.load_digits() 5digits = np.array(digits) 6c = digits[2:4,2:4,:] 7print(c)
試したこと
以下のように.imagesをつけることにより指定の文字を取り出すことにより配列の大きさを小さくしたらなおりました。なのでアレイの要素数が多すぎたのでしょうか?上のエラーを避けるにはやはり要素を小さくカットしてそこからスライスをしてあとからくっつけるというようなことをしなければならないのいでしょうか?
python
1digits = datasets.load_digits() 2digits = np.array(digits.images[1])#<----ここを変更 3c = digits[2:4,2:4]#データも二次元になるので二次元に 4print(c)
補足情報
python3.6
numpy
sckit-learn
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。