我将示例作為多行文本複制粘貼到我的ipython會話中,并運作以下genfromtxt:In [281]: np.genfromtxt(txt.splitlines(),dtype=None,names=True,usecols=range(13))
Out[281]:
array([(1, 15.2, 12.3, 9.96, 10.1, 15.0, 33.7, 137, 309, 182, 62.6, 27.4, 17.2),
(2, 14.9, 12.3, 9.96, 9.96, 16.4, 38.2, 109, 342, 197, 69.9, 25.4, 16.6),
(3, 14.9, 12.3, 9.78, 10.3, 17.3, 50.3, 118, 472, 184, 68.7, 24.5, 17.0),
(4, 14.6, 12.3, 9.69, 10.3, 18.7, 58.1, 152, 275, 190, 68.7, 24.5, 16.6),
(5, 14.4, 12.3, 9.51, 10.1, 18.9, 44.5, 165, 188, 206, 69.9, 24.0, 16.5),
(6, 14.1, 12.3, 9.41, 10.3, 19.8, 44.8, 142, 157, 192, 62.2, 23.8, 16.1),
(7, 14.0, 12.3, 9.32, 10.3, 20.4, 52.6, 121, 146, 182, 58.9, 24.9, 15.6)],
dtype=[('Day', '
我必須指定usecols,因為頭中有14個名稱,但資料行中隻有13個字段。在
請注意,它加載了一個1d結構化數組。列是按字段名通路的,例如data['Jan'],而不是數字。data[1]将從第二個資料行擷取資料。在
如果我跳過标題行,我可以将其作為一個二維浮點數組加載
^{pr2}$
從scatch開始,我可以将這些行轉換為一個清單清單,其中包括:ll = []
for line in txt.splitlines():
ll.append(line.strip().split())
我可以通過以下方式擷取浮動清單:for line in txt.splitlines()[1:]: # skip the header
ll.append([float(i) for i in line.strip().split()])
可以轉化為二維數組np.array(ll)
如果空白分隔符不起作用,genfromtxt還接受一個字段寬度清單作為“分隔符”。看它的檔案或實驗。在