2012-06-28 74 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指定爲列表。

這導致每列都被讀爲字符串類型,並以列標題開頭。