2017-08-09 114 views
-1

文本數據是這樣的:如何將文本文件讀入np.array?

a1 1 2 3 4 5 6 7 8 9 10 
b2 2 3 4 5 6 7 8 9 10 11 
c3 3 4 5 6 7 8 9 10 11 12 
d4 4 5 6 7 8 9 10 11 12 13 
e5 5 6 7 8 9 10 11 12 13 14 
f6 6 7 8 9 10 11 12 13 14 15 
g7 7 8 9 10 11 12 13 14 15 16 
h8 8 9 10 11 12 13 14 15 16 17 
i9 9 10 11 12 13 14 15 16 17 18 
j10 10 11 12 13 14 15 16 17 18 19 

我怎麼能看這種文本文件導入np.array沒有第一列(第一列是每一行的名稱)?非常感謝。

PS。我試圖np.loadtxt(「文件名」),並得到了「不能把字符串轉換爲float:B'A」錯誤

+0

你有沒有嘗試過自己。這真的好像谷歌可以幫助你 –

+0

@ArpitSolanki是的,我搜索,並找到幾種方式,但他們都沒有作品 – user133140

回答

-1
import numpy as np 

b = [] 
with open('data.txt') as infile: 
    lines = infile.readlines() 
    for line in lines: 
     for n in line.split()[1:]: 
      b.append(int(n)) 
c = np.array(b) 
+3

它的評論和鏈接唯一的答案。這不是真的可以接受。嘗試在問題本身中包含重要的代碼片段。 –

+0

@ApritSolnaki對不起,答案不正確。我用代碼片段更新了答案,但看起來Siddharth已經找到了更好的解決方案。 –

+0

我得到了錯誤「無效的文字爲int()與基10:'OPEN'」 – user133140

2

np.loadtxt應該工作,只要你知道的列數。

>>> a = np.loadtxt("file_name", usecols=range(1,11), dtype=np.float32) 
>>> a 
array([[ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.], 
     [ 2., 3., 4., 5., 6., 7., 8., 9., 10., 11.], 
     [ 3., 4., 5., 6., 7., 8., 9., 10., 11., 12.], 
     [ 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.], 
     [ 5., 6., 7., 8., 9., 10., 11., 12., 13., 14.], 
     [ 6., 7., 8., 9., 10., 11., 12., 13., 14., 15.], 
     [ 7., 8., 9., 10., 11., 12., 13., 14., 15., 16.], 
     [ 8., 9., 10., 11., 12., 13., 14., 15., 16., 17.], 
     [ 9., 10., 11., 12., 13., 14., 15., 16., 17., 18.], 
     [ 10., 11., 12., 13., 14., 15., 16., 17., 18., 19.]]) 
+0

@ user133140,如果你想要的數據爲int,你可以用'dtype = int'指定, – jacoblaw

+0

我仍然收到錯誤「無法將字符串轉換爲float:b'OPEN'」 – user133140

+2

@ user133140那麼你有更多的你的文本文件,然後你給我們看。 – jacoblaw