![等价于numpy(Python)中的Matlab'ismember'吗?[重复],第1张 等价于numpy(Python)中的Matlab'ismember'吗?[重复],第1张](/aiimages/%E7%AD%89%E4%BB%B7%E4%BA%8Enumpy%EF%BC%88Python%EF%BC%89%E4%B8%AD%E7%9A%84Matlab%26amp%3B%23039%3Bismember%26amp%3B%23039%3B%E5%90%97%EF%BC%9F%5B%E9%87%8D%E5%A4%8D%5D.png)
如果按月排序,请使用
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条)