前提・実現したいこと
numpy配列を生成するときに型指定をしたいと考えています。
しかしながら、以下のようなエラーが出て困っています。
2次元配列ではうまくいくのですが、3次元になると配列にint()をしてしまうみたいです。
よくよく見てみると、numpy配列にしたい配列をcsvから読み込んでいるため、'[0,0,0]'となっていました。
どのようにすれば文字列から配列に変換できるのでしょうか。
わかる方がいましたら、コメントお願いします。
発生している問題・エラーメッセージ
ValueError: invalid literal for int() with base 10: '[0,0,0]'
該当のソースコード
python
1with open('./fuga.csv') as f: 2 reader = csv.reader(f) 3 fuga = [row for row in reader] 4 5# 量が多いので、こんなイメージです 6#hoge = [['0','0','0'], ['0','0','0'], ['0','0','0'], ...] 7#fuga = [['[0,0,0]','[0,0,0,]','[0,0,0]]', '[...]'] 8 9np.asanyarray(hoge, dtype='uint16') #ok 10np.asanyarray(fuga, dtype='uint16') #NG
読み込むcsv
[4,4,4],[3,3,3],[4,4,4],[4,4,4],...
補足情報(FW/ツールのバージョンなど)
python3.8
fuga = [[[0,0,0],[0,0,0],[0,0,0]]] という三次元データだとエラー出ませんでした。
エラーの出る単純なデータを提示することは可能でしょうか?
ここが悪いのだと思っていました。
これを引数としてopen3dというライブラリを使っているのですが、そっちがエラーの原因っぽいです。
別質問を立てたほうがいいですよね、、、
まだ回答ついていないので、この質問を全面修正してもよいかと思います。
承知しました。
なお、エラーメッセージから推測すると「[0 0 0]」という**文字列**が渡されているようです。
そのような処理、データがご自身のコードにないか確認ください。
そこがエラーの原因でした。
修正したので、確認お願いします。