您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

如果按月排序,请使用np.searchsorted。否则,排序然后使用np.searchsorted

import numpy as np
quarters = 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)(并避免某些常量因素,当然)。

python 2022/1/1 18:43:12 有440人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶