gpt4 book ai didi

python - 将 numpy 导入为 np 与从 numpy 导入

转载 作者:行者123 更新时间:2023-12-02 14:52:24 27 4
gpt4 key购买 nike

我有一个大量使用 numpy 的模块:

from numpy import array, median, nan, percentile, roll, sqrt, sum, transpose, unique, where

使用

保持 namespace 清洁是更好的做法吗?
import numpy as np

然后当我需要使用 array 时,只需使用 np.array,例如?

这个模块也会被重复调用,比如说几百万次,保持命名空间干净似乎会增加一些开销?

setup = '''import numpy as np'''
function = 'x = np.sum(np.array([1,2,3,4,5,6,7,8,9,10]))'
print(min(timeit.Timer(function, setup=setup).repeat(10, 300000)))

1.66832

setup = '''from numpy import arange, array, sum'''
function = 'x = sum(array([1,2,3,4,5,6,7,8,9,10]))'
print(min(timeit.Timer(function, setup=setup).repeat(10, 300000)))

1.65137

为什么使用 np.sumsum 相比会增加更多时间?

最佳答案

你是对的,最好保持命名空间干净。所以我会用

import numpy as np

它使您的代码更具可读性,当您看到像 np.sum(array) 这样的调用时,系统会提醒您应该使用 numpy 数组。第二个原因是,许多 numpy 函数与其他模块(如 scipy)中的函数具有相同的名称...如果您同时使用这两种函数,则始终清楚您使用的是哪个。

正如您在所做的测试中看到的那样,性能差异是存在的,如果您确实需要性能,您可以通过其他方式实现。

性能上的差异在于,在特定函数导入的情况下,您在脚本开头引用了 numpy 模块中的函数。在一般模块导入的情况下,您只导入对模块的引用,python 需要在每次调用时解析/查找您在该模块中使用的函数。

关于python - 将 numpy 导入为 np 与从 numpy 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54946662/

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