如何将文本文件读入np.array?

时间:2017-08-09 17:05:35

标签: python python-3.x

文本数据如下:

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(“filename”)并得到“无法将字符串转换为浮点数:b'a'”错误

2 个答案:

答案 0 :(得分: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.]])

答案 1 :(得分:-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)