我有一个模拟脚本的输出,其中包含两个数组,一个包含ID,另一个包含时间,例如:
ids = np.array([2, 0, 1, 0, 1, 1, 2])
times = np.array([.1, .3, .3, .5, .6, 1.2, 1.3])
这些数组始终具有相同的大小。现在我需要计算times
的差异,但仅针对具有相同ids
的时间。当然,我可以简单地循环遍历不同的ids
并执行操作。
for id in np.unique(ids):
diffs = np.diff(times[ids==id])
print diffs
# do stuff with diffs
然而,这种方法效率相当低下,而且两个数组可能非常大。是否有更好的方法可以更有效地完成这项任务?
ids[id_ind]
时,使用sorted(ids)
是否有特定原因? - obachtosargsort()
使用标准算法quicksort可能会破坏时间顺序。最好使用稳定的mergesort,即argsort(kind='mergesort')
。 - obachtos