如果按月排序,请使用
np.searchsorted。否则,排序然后使用
np.searchsorted:
import numpy as npquarters = np.array([200712, 200803, 200806, 200809, 200812, 200903])months = np.arange(200801, 200813)loc = np.searchsorted(months, quarters)
np.searchsorted返回插入位置。如果您的数据有可能不在正确的范围内,那么您之后可能需要检查一下:
valid = (quarters <= months.max()) & (quarters >= months.min())loc = loc[valid]
这是一个O(N log
N)解决方案。如果就运行时间而言,这仍然对您的程序来说很重要,那么您可以使用散列方案在C(++)中执行此子例程,该方案应为O(N)(并避免某些常量因素,当然)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)