2

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_rows,可以控制要读取的行数,请参见此处

4

1 回答 1

2

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

b = np.genfromtxt(a, delimiter=',', invalid_raise=False)

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

于 2014-09-19T09:37:59.487 回答