Python 3.2 を使用して自分のマシンで作成したスクリプトがあります。関連するデータ ファイルのサイズが大きいため、バージョン 2.5 を実行する別のマシンでスクリプトを実行する必要があります。Pythonリストをnumpy配列に変換する次のコードを実行すると、次のエラーが発生します
Traceback (most recent call last):
File "count_code2.py", line 119, in <module>
cell_centers()
File "count_code2.py", line 58, in cell_centers
read_file(F)
File "count_code2.py", line 44, in read_file
Xa = numpy.array(X, dtype=float) #Converts lists to NumPy arrays
ValueError: setting an array element with a sequence.
エラーが参照しているコードのビットは
Xa = numpy.array(X, dtype=float) #Converts lists to NumPy arrays
Ya = numpy.array(Y, dtype=float)
Za = numpy.array(Z, dtype=float)
X、Y、Z は次の Python リスト (テスト リスト) です。
X= ['0', '0', '0', '1.5', '0', '0', '0', '0', '0', '0']
Y= ['0', '0', '0', '1', '0', '0', '0', '0', '0', '0']
Z= ['0', '0', '0', '1', '0', '0', '0', '0', '0', '0']
同様の投稿で問題を解決できることを読んだので、dtypeをオブジェクトとして再キャストしようとしました。エラーがスローされるのを防ぎますが、配列内のデータを合計する別の関数は、python 2.x マシンでゼロを返し、3.2 マシンでこのエラーを返します。
File "C:\Documents and Settings\My Documents\Count_Code.py", line 103, in counter
((ymin <= Ya) & (Ya <= ymax))&
TypeError: unorderable types: float() <= str()
dtype オブジェクトがリストを文字列の配列に変換すると想定しているため、このエラーが発生します。バージョンの違いが原因でエラーが発生する理由と、それを回避するために私にできることを誰かが説明できるかどうかを尋ねたいと思います。前もって感謝します