使用 Genfromtxt 仅对一列出错。可以读取所有其他列。我该如何解决?

error only for one column by using Genfromtxt. All other columns could be read. how can i fix it?

我是 python 的新手,我想从 .txt 文件中读取我的数据。除了 header 只有花车。我有 6 列和很多行。 要阅读它,我正在使用 genfromtxt。如果我想阅读前两列它正在工作,但如果我想阅读第 5 列我收到以下错误:

Line #1357451 (got 4 columns instead of 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 您可以跳过缺少的值。