2017-08-09 67 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