我正在尝试使用 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.]])
