gpt4 book ai didi

python - 查找一个 numpy 数组中的值落在另一个 numpy 数组中的值之间的位置

转载 作者:行者123 更新时间:2023-12-02 10:45:08 27 4
gpt4 key购买 nike

有没有更数字化的方法来做到这一点?

#example arrays
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7], dtype=np.float32)
values = np.array([0.2, 3.0, 1.5])

#get the indices where each value falls between values in arr
between = [np.nonzero(i > arr)[0][-1] for i in values]

最佳答案

对于排序的arr,我们可以使用np.searchsorted性能 -

In [67]: np.searchsorted(arr,values)-1
Out[67]: array([0, 2, 1])

大型数据集的计时 -

In [81]: np.random.seed(0)
...: arr = np.unique(np.random.randint(0,10000, 10000))
...: values = np.random.randint(0,10000, 1000)

# @Andy L.'s soln
In [84]: %timeit np.argmin(values > arr[:,None], axis=0) - 1
10 loops, best of 3: 28.2 ms per loop

# Original soln
In [82]: %timeit [np.nonzero(i > arr)[0][-1] for i in values]
100 loops, best of 3: 8.68 ms per loop

# From this post
In [83]: %timeit np.searchsorted(arr,values)-1
10000 loops, best of 3: 57.8 µs per loop

关于python - 查找一个 numpy 数组中的值落在另一个 numpy 数组中的值之间的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59430854/

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