我有很多(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数组中的所有记录以及平行数组中的相关元素”这样的东西。如果它比上述方法更有效,则有聪明,酷炫的语法吗?