genfromtxt
可以跳过头部和尾部行,并指定要使用哪些列。
但是我如何控制读取的行数呢?
有时,一个文本文件可能包含多个不同形状的块。 例如:
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
的新关键字,允许控制要读取的行数,参见此处。
fromfile
提供了一个关键字count
来控制读取的项目数量。然而,与genfromtxt
或loadtxt
读取文本文件时相比,fromfile
的灵活性较差。 - Syrtis Major