我有许多 (=1000+)、大型 (=1000000+ 记录) 数据文件,其中包含时间、x、y、z 数据。
我对一个示例文件使用了 numpy.loadtxt 来填充四个并行数组;例如,
ts, xs, ys, zs = numpy.loadtxt( 'sampledatafile.csv', delimiter=',', unpack=True)
我想选择这些并行数组的子集,其中时间在指定范围内;例如,
min_time = t0 # some time, in the same format as values in the data file
max_time = t1 # a later time
通过遍历 ts 数组,我已经能够做到这一点;像这样,
my_ts = []
my_xs = []
my_ys = []
my_zs = []
for row in range( len( ts ) ):
if ( min_time <= ts[row] ) and ( ts[row] <= max_time ):
my_ts.append( ts[row] )
my_xs.append( ss[row] )
my_ys.append( ys[row] )
my_zs.append( zs[row] )
这里有更有效的方法吗?我认为另一种方法是使用 csv 文件阅读器加载每条记录,并在每条记录经过时检查它,而不是 numpy.loadtxt。
在 Python 中肯定有更聪明的方法吗?类似于“选择 ts 数组中符合条件的所有记录,以及并行数组中的相关元素”?是否有聪明而酷的语法?特别是如果它比上述方法更有效?