gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:15:49 26 4
gpt4 key购买 nike

我正在寻找一个 numpy 函数来查找在向量 (xs) 中找到特定值的索引。这些值在另一个数组 (ys) 中给出。返回的索引必须按照ys的顺序。

在代码中,我想用 numpy 函数替换下面的列表理解。

>> import numpy as np
>> xs = np.asarray([45, 67, 32, 52, 94, 64, 21])
>> ys = np.asarray([67, 94])
>> ndx = np.asarray([np.nonzero(xs == y)[0][0] for y in ys]) # <---- This line
>> print(ndx)
[1 4]

有没有快速的方法?

谢谢

最佳答案

对于大数组 xsys,您需要更改基本方法以使其变得更快。如果您对排序 xs 没问题,那么一个简单的选择是使用 numpy.searchsorted():

xs.sort()
ndx = numpy.searchsorted(xs, ys)

如果保持 xs 的原始顺序很重要,您也可以使用这种方法,但您需要记住原始索引:

orig_indices = xs.argsort()
ndx = orig_indices[numpy.searchsorted(xs[orig_indices], ys)]

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

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