我是python的新手,我想从.txt文件中读取数据。除了标题之外,只有浮点数。我有 6 列和非常多的行。 为了阅读它,我正在使用genfromtxt。如果我想阅读前两列,它可以工作,但如果我想阅读第 5 列,我会收到以下错误:
第 #1357451 行(有 4 列而不是 4 列(
这是我的代码:
import numpy as np
data=np.genfromtxt(dateiname, skip_header=1, usecols=(0,1,2,5))
print(data[0:2, 0:3])
我认为第 5 列中缺少一些值,因此不起作用。 有没有人想解决我的问题并阅读第 5 列的数据?
来自genfromtxt
文档:
Notes
-----
* When spaces are used as delimiters, or when no delimiter has been given
as input, there should not be any missing data between two fields.
如果所有列(包括缺失的列(都正确排列,则可以使用固定列宽版本的delimiter
。
An integer or sequence of integers
can also be provided as width(s) of each field.
当一行如下所示时:
one, 2, 3.4, , 5, ,
它可以明确识别 7 列。 如果相反,它是
one 2 3.4 5
它只能识别 4 列(一般两个空格计为一个,依此类推,尾随空格被忽略(
我找到了另一种解决方案。有了filling_values=0
,我可以用零填充空值。现在它正在工作!:)
import numpy as np
data=np.genfromtxt(dateiname, skip_header=1, usecols=(0,1,2,5), delimiter='t', invalid_raise=False, filling_values=0)
此外,我不再将分隔符保留为默认值,而是定义了制表符距离,有了invalid_raise
,您可以跳过缺少的值。