Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Genfromtxt仅对一列出错。可以读取所有其他列。我怎样才能修好它?_Python_Python 3.x_Numpy_Genfromtxt - Fatal编程技术网

Python 使用Genfromtxt仅对一列出错。可以读取所有其他列。我怎样才能修好它?

Python 使用Genfromtxt仅对一列出错。可以读取所有其他列。我怎样才能修好它?,python,python-3.x,numpy,genfromtxt,Python,Python 3.x,Numpy,Genfromtxt,我是python新手,我想从.txt文件中读取数据。除页眉外,只有浮动。我有6列和很多行。 要阅读它,我使用的是genfromtxt。如果我想读前两列,它是工作的,但是如果我想读第五列,我会得到以下错误: 第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列中缺少一些值,因

我是python新手,我想从.txt文件中读取数据。除页眉外,只有浮动。我有6列和很多行。 要阅读它,我使用的是genfromtxt。如果我想读前两列,它是工作的,但是如果我想读第五列,我会得到以下错误:

第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.
如果所有列(包括缺少的列)正确对齐,则可以使用固定列宽版本的
分隔符

 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
我可以用零填充空值。现在它正在工作!:)


此外,我不再将分隔符保留为默认值,而是定义了制表符距离,使用
invalid\u raise
可以跳过缺少的值。

给出错误的行是什么?有超过4列吗?在1357451行总共有6列?我不知道如何检查。我试过的一切都没用。有什么想法吗?我们读一下文件的那一行,告诉我们有什么:)谢谢。现在我设置了分隔符='\t',列不再丢失。:)
import numpy as np
data=np.genfromtxt(dateiname, skip_header=1, usecols=(0,1,2,5), delimiter='\t', invalid_raise=False, filling_values=0)