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.