numpy.max或最大? 哪一个是更快?(numpy.max or max ? Which o

2019-07-29 18:55发布

在Python中,哪一个是更快?

numpy.max(), numpy.min()

要么

max(), min()

我的列表/数组的长度从2变化到600,我应该使用哪一个,以节省一些运行时间?

Answer 1:

那么从我的计时它遵循如果你已经有了numpy的数组a你应该使用a.max (来源告诉它一样np.max如果a.max可用)。 但是,如果你有内置的列表,然后大部分时间花费转换成np.ndarray =>这就是为什么max是在你的时机更好。

在essense:如果np.ndarray然后a.max ,如果list没有必要对所有的机械np.ndarray那么标准max



Answer 2:

我也有兴趣在这个和测试与三个变种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)'
    )


Answer 3:

如果你使用的东西,像python这也可能是最好的timeit模块来测试它自己。 这样,你可以在自己的环境中测试自己的数据,而不是依赖于第三方的各种测试数据和环境这并不一定代表你的事。



Answer 4:

numpy.minnumpy.max具有略微不同的语义(并调用签名)到内建,所以选择不应该是与速度有关。 如果您需要能够处理三立多维数据使用numpy的版本。 如果你只是使用Python列表或其他的东西,不知道维度,使用内建命令。



文章来源: numpy.max or max ? Which one is faster?