在Python中,哪一个是更快?
numpy.max(), numpy.min()
要么
max(), min()
我的列表/数组的长度从2变化到600,我应该使用哪一个,以节省一些运行时间?
在Python中,哪一个是更快?
numpy.max(), numpy.min()
要么
max(), min()
我的列表/数组的长度从2变化到600,我应该使用哪一个,以节省一些运行时间?
那么从我的计时它遵循如果你已经有了numpy的数组a
你应该使用a.max
(来源告诉它一样np.max
如果a.max
可用)。 但是,如果你有内置的列表,然后大部分时间花费转换成np.ndarray =>这就是为什么max
是在你的时机更好。
在essense:如果np.ndarray
然后a.max
,如果list
没有必要对所有的机械np.ndarray
那么标准max
。
我也有兴趣在这个和测试与三个变种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)'
)
如果你使用的东西,像python这也可能是最好的timeit模块来测试它自己。 这样,你可以在自己的环境中测试自己的数据,而不是依赖于第三方的各种测试数据和环境这并不一定代表你的事。
numpy.min
和numpy.max
具有略微不同的语义(并调用签名)到内建,所以选择不应该是与速度有关。 如果您需要能够处理三立多维数据使用numpy的版本。 如果你只是使用Python列表或其他的东西,不知道维度,使用内建命令。