Skip to main content
 首页 » 编程设计

python之如何导入行列不规则的文本数据文件

2025年05月04日14langtianya

我正在尝试使用 numpy.loadtxt 导入文本文件。数据文件包含 10,000 多行,其中大部分有 33 列。但是,很少有行只有一列而不是 33 列。我尝试使用 numpy.loadtxt 和 genfromtxt 但收到错误消息。我如何在 python 中导入这样的数据文件?

请您参考如下方法:

如果您想忽略只有一列的行,您可以使用带有参数 invalid_raise=False 的 genfromtxt。为此,第一行必须包含完整的列数。

例如,这里是文件 foo.txt:

10 20 30 
40 50 60 
99 
70 80 90 
10 20 30 
99 
40 50 60 

使用 genfromtxt 和 invalid_raise=False 读取文件。生成警告,但返回三列行的数据数组:

In [2]: genfromtxt('foo.txt', invalid_raise=False) 
/Users/warren/anaconda/lib/python2.7/site-packages/numpy/lib/npyio.py:1695: ConversionWarning: Some errors were detected ! 
    Line #3 (got 1 columns instead of 3) 
    Line #6 (got 1 columns instead of 3) 
  warnings.warn(errmsg, ConversionWarning) 
Out[2]:  
array([[ 10.,  20.,  30.], 
       [ 40.,  50.,  60.], 
       [ 70.,  80.,  90.], 
       [ 10.,  20.,  30.], 
       [ 40.,  50.,  60.]])