gpt4 book ai didi

python - 如何在不完全破坏性能的情况下修改 Numba 中的列表?

转载 作者:太空宇宙 更新时间:2023-11-03 15:23:13 25 4
gpt4 key购买 nike

这是一个例子。如果运行此代码,它将打印出调用 foo 花费了约 1 秒的时间:

import timeit
import numba

@numba.njit('void(List(intp, True))')
def foo(v): v[0] += 1

a = range(1 << 25)
start = timeit.default_timer()
foo(a)
stop = timeit.default_timer()
print stop - start

显然,Numba 正在来回复制列表。有什么办法可以避免吗?
(我无法轻松使用 NumPy 数组,因为我需要在代码中的其他位置调整列表的大小。)

最佳答案

如果您确实需要在 Numba 中使用列表,并且副本成本太高,则需要在对象模式下编译此函数。 nopython模式不能直接操作列表;这样做从根本上来说是一个 Python 对象操作,这是 nopython 模式所禁止的。

关于python - 如何在不完全破坏性能的情况下修改 Numba 中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43353703/

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