gpt4 book ai didi

python - numba 中两个列表的交集

转载 作者:行者123 更新时间:2023-12-02 19:41:51 25 4
gpt4 key购买 nike

我想知道在 numba 函数中计算两个列表的交集的最快方法。只是为了澄清:两个列表的交集示例:

Input : 
lst1 = [15, 9, 10, 56, 23, 78, 5, 4, 9]
lst2 = [9, 4, 5, 36, 47, 26, 10, 45, 87]
Output :
[9, 10, 4, 5]

问题是,这需要在 numba 函数内计算,因此例如套装不能使用。你有好主意吗?我当前的代码非常基本。我认为还有改进的空间。

@nb.njit
def intersection:
result = []
for element1 in lst1:
for element2 in lst2:
if element1 == element2:
result.append(element1)
....

最佳答案

由于 numba 以机器代码编译并运行您的代码,因此您可能最适合进行如此简单的操作。我运行了下面的一些基准测试

@nb.njit
def loop_intersection(lst1, lst2):
result = []
for element1 in lst1:
for element2 in lst2:
if element1 == element2:
result.append(element1)
return result

@nb.njit
def set_intersect(lst1, lst2):
return set(lst1).intersection(set(lst2))

结果

loop_intersection
40.4 µs ± 1.5 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

set_intersect
42 µs ± 6.74 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

关于python - numba 中两个列表的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59959207/

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