如何使用没有固定列大小的numpy加载数据

时间:2014-03-05 10:24:33

标签: python arrays text numpy

我们如何加载带有制表符分隔值但没有固定列大小的文本文件,以及跳过缺失值的方式完全以列表/数组或每个行(或整个行)包含numpy数组的任何容器结束numpy array? - >可能是不可能的,因为numpy需要固定的大小)?

这是否只能通过使用python读取每一行然后使用loadtxt行转换为一维数组来实现?

list=[]
for lineString in file:
    list.append( np.loadtxt(lineString) )

还是以某种方式加载txt?

1 个答案:

答案 0 :(得分:1)

也许你可以使用pandas

如果您的文件如下所示:

1   2   3   4   5   6
1   2
8.0 9   97  54

然后这样做:

import pandas as pd
pd.read_csv('yourfile.txt',sep='\t')

给出:

   1  2   3   4   5   6
0  1  2 NaN NaN NaN NaN
1  8  9  97  54 NaN NaN

要转换为numpy数组:

np.array(pd.read_csv('yourfile.txt',sep='\t'))


array([[  1.,   2.,  nan,  nan,  nan,  nan],
       [  8.,   9.,  97.,  54.,  nan,  nan]])