Numpy 如何控制genfromtxt读取指定的行?

Numpy 如何控制genfromtxt读取指定的行?,numpy,scipy,genfromtxt,Numpy,Scipy,Genfromtxt,genfromtxt可以跳过页眉和页脚行,并指定要使用的列。 但是我如何控制要读多少行呢 有时一个txt文件可能包含几个不同形状的块。 比如说, a=StringIO(''' 1,2,3 1,2,3 2,3 2,3 ''') genfromtxt(a,delimiter=',',skip_header=1) 这会引起一个错误 ValueError: Some errors were detected ! Line #4 (got 2 columns instead of 3)

genfromtxt
可以跳过页眉和页脚行,并指定要使用的列。 但是我如何控制要读多少行呢

有时一个txt文件可能包含几个不同形状的块。 比如说,

a=StringIO('''
1,2,3
1,2,3
2,3
2,3
''')
genfromtxt(a,delimiter=',',skip_header=1)
这会引起一个错误

ValueError: Some errors were detected !
    Line #4 (got 2 columns instead of 3)
    Line #5 (got 2 columns instead of 3)
当然,我可以这样做:

a=StringIO('''
1,2,3
1,2,3
2,3
2,3
''')
genfromtxt(a,delimiter=',',skip_header=1,skip_footer=2)
这很难看,因为我必须计算块下的行数

但是我希望像这样

genfromtxt(a,delimiter=',',skip_header=1,nrows=2)
这将更加清楚

有人对此有好主意吗?还是使用其他功能


2015年10月更新 在新版的
Numpy
中,此问题已解决


genfromtxt
现在有了一个名为
max\u rows
的新关键字,它可以控制要读取的行数,cf.

您可以使用
invalid\u raise=False
跳过读取缺少某些数据的行。 例如


这将给您一个警告,但不会引发异常。

fromfile
提供一个关键字
count
可以控制要读取的项目数。但是,在读取txt文件时,
fromfile
不如
genfromtxt
loadtxt
灵活。如果要过滤该警告,可以添加此项,
import warnings
warnings.simplefilter(“忽略”,用户警告)
b = np.genfromtxt(a, delimiter=',', invalid_raise=False)