问题是我想减少绘图和分析的数据量。我正在使用 Python 和 Numpy。数据采样不均匀,因此有一个时间戳数组和一个对应值数组。我希望数据点之间至少有一定的时间。我在这里有一个用 Python 编写的简单解决方案,可以在样本之间至少间隔一秒的地方找到索引:
import numpy as np
t = np.array([0, 0.1, 0.2, 0.3, 1.0, 2.0, 4.0, 4.1, 4.3, 5.0 ]) # seconds
v = np.array([0, 0.0, 2.0, 2.0, 2.0, 4.0, 4.0, 5.0, 5.0, 5.0 ])
idx = [0]
last_t = t[0]
min_dif = 1.0 # Minimum distance between samples in time
for i in range(1, len(t)):
if last_t + min_dif <= t[i]:
last_t = t[i]
idx.append(i)
如果我们看一下结果:
--> print idx
[0, 4, 5, 6, 9]
--> print t[idx]
[ 0. 1. 2. 4. 5.]
问题是如何才能更有效地做到这一点,特别是如果数组真的很长?是否有一些内置的 NumPy 或 SciPy 方法可以做类似的事情?