gpt4 book ai didi

python - 在 Numpy 数组中查找多个值

转载 作者:太空狗 更新时间:2023-10-30 01:51:44 26 4
gpt4 key购买 nike

ab 是两个 Numpy 整数数组。它们被排序并且没有重复。 ba 的子集。我需要在 a 中找到 b 的每个元素的索引。是否有有效的 Numpy 函数可以帮助我避免 python 循环?

(实际上,数组是 pandas.DatetimeIndex 和 Numpy datetime64,但我想这不会改变答案。)

最佳答案

numpy.searchsorted()可用于执行此操作:

In [15]: a = np.array([1, 2, 3, 5, 10, 20, 25])

In [16]: b = np.array([1, 5, 20, 25])

In [17]: a.searchsorted(b)
Out[17]: array([0, 3, 5, 6])

据我了解,它不需要对b进行排序,而是对a使用二分查找。这意味着它是 O(n logn) 而不是 O(n)。

如果这还不够好,总有 Cython . :-)

关于python - 在 Numpy 数组中查找多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15204991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com