2012-06-28 72 views
0

我正在使mu代码更好的过程中,我看到numpy有一些非常漂亮的功能已经内置。然而,下面的代码抛出一个错误,我不能 解释:numpy数据转换错误

data = numpy.genfromtxt('table.oout',unpack=True,names=True,dtype=None) 

real_ov_data=np.float32(data['real_overlap']) 
ana_ov_data= np.float32(data['Analyt_overlap']) 
length_data =np.float32(data['Residues']) 

plot(length_data,real_ov_data,label="overlapped Peaks, exponential function",marker="x", markeredgecolor="blue", markersize=3.0, linestyle=" ",color="blue") 
plot(length_data,ana_ov_data,label="expected overlapped Peaks",marker="o", markeredgecolor="green", markersize=3.0, linestyle=" ",color="green") 

引发错误

Traceback (most recent call last): 
    File "length_vs_overlap.py", line 52, in <module> 
    real_ov_data=np.float32(data['real_overlap']) 
ValueError: invalid literal for float(): real_overlap 
>Exit code: 1 

当我试图阅读下列文件:

'Residues' 'Analyt_overlap' 'anz_analyt_overlap' 'real_overlap' 
    21   1.2502  29   0.0000 
    13   1.0306  25   0.0000 
    56   5.8513  84   2.8741 
    190   68.0940  329   28.4706 
    54   5.4271  83   2.4999 

我是什么做错了?我的一段代码应该很简单吗?

+1

当你遍历'data',或许这个'numpy.genfromtxt('table.oout',unpack = True,names = True,dtype = None)''''''''正是你的想法。 –

+1

这适用于我,数据加载得很好。另外,你不应该有'numpy'的两个命名空间。你有'numpy.'和'np.'。我会删除其中一个导入语句并将其统一。 – Hooked

+1

发布的最小示例中的数据加载事实表明您在错误发生之前在50行代码中做了些什么。你可以发布一个_complete_例子,其中包括所有需要的导入语句吗? – Hooked

回答

1

您要么重复标题行,要么将names指定为列表。

这导致每列都被读为字符串类型,并以列标题开头。