我有一个使用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对象将列表转换为字符串数组,这就是我收到此错误的原因。我想问一下是否有人可以解释为什么版本的差异导致错误,以及我可以做些什么来解决它。提前致谢