index array amax python numpy runtime max min

array - max of a vector python



numpy.max o max? ¿Cuál es más rápido? (4)

En Python, ¿cuál es más rápido?

numpy.max(), numpy.min()

o

max(), min()

La longitud de mi lista / matriz varía de 2 a 600. ¿Cuál debo usar para ahorrar tiempo de ejecución?


Bueno, de mis tiempos se sigue que si ya tienes a matriz numpy, debes usar a.max (la fuente dice que es lo mismo que np.max si a.max disponible). Pero si tiene una lista incorporada, la mayoría de las veces se convierte en np.ndarray => por eso max es mejor en sus tiempos.

En esencia: si np.ndarray entonces a.max , si está en la list y no hay necesidad de toda la maquinaria de np.ndarray entonces max estándar.


Probablemente sea mejor si usas algo como el módulo de tiempo de Python para probarlo por ti mismo. De esa manera, puede probar sus propios datos en su propio entorno, en lugar de confiar en terceros con diversos datos de prueba y entornos que no son necesariamente representativos de los suyos.


También me interesó esto y probé las tres variantes con perfplot (un pequeño proyecto mío). Resultado: no vas a ir mal con a.max() .

Código para reproducir la trama:

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)'' )


numpy.min y numpy.max tienen semánticas (y firmas de llamada) ligeramente diferentes a las integradas, por lo que la elección no debería ser la velocidad. Utilice las versiones numpy si necesita poder manejar datos multidimensionales de forma segura. Si solo está utilizando listas de Python u otras cosas que no saben sobre la dimensionalidad, use los elementos incorporados.