numpy.max还是最大?哪一个更快?

Fro*_*oyo 33 python numpy runtime max min

在python中,哪一个更快?

numpy.max(), numpy.min()
Run Code Online (Sandbox Code Playgroud)

要么

max(), min()
Run Code Online (Sandbox Code Playgroud)

我的列表/数组长度从2到600不等.我应该使用哪一个来节省一些运行时间?

gor*_*um0 44

那么从我的计时它遵循如果你已经有了numpy的数组a,你应该使用a.max(该消息人士告诉这是一样的np.max,如果a.max可用).但是如果你有内置列表,那么大部分时间都会转换为np.ndarray =>这就是为什么max你的时间更好.

在本质上:如果np.ndarray那时a.max,如果list并且不需要所有np.ndarray标准的机器max.


Nic*_*mer 25

我也对此感兴趣,并用perfplot(我的一个小项目)测试了这三个变种.结果:你没有错a.max().

在此输入图像描述

重现情节的代码:

import numpy
import perfplot

perfplot.show(
    setup=lambda n: numpy.random.rand(n),
    kernels=[
        max,
        numpy.max,
        lambda a: a.max()
        ],
    labels=['max(a)', 'numpy.max(a)', 'a.max()'],
    n_range=[2**k for k in range(25)],
    logx=True,
    logy=True,
    xlabel='len(a)'
    )
Run Code Online (Sandbox Code Playgroud)


srg*_*erg 11

如果您使用类似Python timeit模块的东西来自己测试它,那可能是最好的.这样,您就可以在自己的环境中测试自己的数据,而不是依赖于具有各种测试数据和环境的第三方,这些数据和环境不一定代表您的.

  • 我在600个浮点数的随机列表上尝试了这个.|| np.max()+ np.min() - > 1.093毫秒|| max()+ min() - > 0.092毫秒 (2认同)