等价于numpy(Python)中的Matlab'ismember'吗?[重复]

等价于numpy(Python)中的Matlab'ismember'吗?[重复],第1张

等价于numpy(Python)中的Matlab'ismember'吗?[重复]

如果按月排序,请使用

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)(并避免某些常量因素,当然)。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5674867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存