Python ValueError:使用序列设置数组元素

时间:2012-05-03 04:08:19

标签: python arrays numpy sequence

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

0 个答案:

没有答案