2012-05-29 32 views
1

我在Python中使用numpy的loadtxt函數來將數據從文本文件加載到數組。標準的東西,不應該導致任何問題。奇怪的loadtxt行爲,以前工作不起作用的腳本重新安裝後

我已經寫了一個腳本來做到這一點在Ubuntu 10.04下,它的工作完美無瑕。不過,我最近升級到Ubuntu 12.04(完全重新安裝,而不是升級),現在腳本不起作用。

下面是從文件的一行,所有行具有相同的結構:由製表符分隔11列:

Av = 0° Bv = 78° 273013 247744 1327  **** Av' = 156° Bv = 78° 259197 247803 1551 

我想第5和第11列的數據,所以我用這個命令加載數據: loadtxt(文件,usecols =(4,10),分隔符= '\ t')

但它不能正常工作,這裏什麼IPython中吐出:

In [46]: test=loadtxt(file,usecols=(4,10),delimiter='\t') 
--------------------------------------------------------------------------- ValueError 
Traceback (most recent call last) <ipython-input-46-20a0923eaf9b> in <module>() 
----> 1 test=loadtxt(file,usecols=(4,10),delimiter='\t') 

/usr/lib/python2.7/dist-packages/numpy/lib/npyio.pyc in loadtxt(fname, dtype, comments, delimiter, converters, skiprows, usecols, unpack, ndmin) 
    794     vals = [vals[i] for i in usecols] 
    795    # Convert each value according to its column and store 

--> 796    items = [conv(val) for (conv, val) in zip(converters, vals)] 
    797    # Then pack it according to the dtype's nesting 

    798    items = pack_items(items, packing) 

ValueError: could not convert string to float: 

它用來工作和我的 舊系統(Ubuntu 10.04),但我無法管理從我的新安裝(ubuntu 12.04)下的這個文件加載數據。

如果有人可以指出我有什麼問題,將不勝感激!

回答

1

我不確定爲什麼loadtxt用於工作,它目前不能很好地處理字符串。但是你可以用genfromtxt來處理這個記錄:

import numpy as np 

out = np.genfromtxt(file, usecols=(4,10), delimiter='\t') 

如果省略usecols和加載整個記錄,然後將其與nan小號替換字符串條目。

相關問題