Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

405
Vistas
diferencia entre np.inf y float('Inf')

¿Hay alguna diferencia entre NumPy np.inf y float('Inf') ? float('Inf') == np.inf devuelve True , por lo que parece que son intercambiables, por lo que me preguntaba por qué NumPy ha definido su propia constante "inf" y cuándo debo usar una constante en lugar de la otra (considerando el estilo preocupaciones también)?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

TL, DR: No hay diferencia y se pueden usar indistintamente.

Además de tener el mismo valor que math.inf y float('inf') :

 >>> import math >>> import numpy as np >>> np.inf == float('inf') True >>> np.inf == math.inf True

También tiene el mismo tipo:

 >>> import numpy as np >>> type(np.inf) float >>> type(np.inf) is type(float('inf')) float

Eso es interesante porque NumPy también tiene sus propios tipos de punto flotante:

 >>> np.float32(np.inf) inf >>> type(np.float32(np.inf)) numpy.float32 >>> np.float32('inf') == np.inf # nevertheless equal True

Por lo tanto, tiene el mismo valor y el mismo tipo que math.inf y float('inf') , lo que significa que es intercambiable.

Razones para usar np.inf

  1. Es menos escribir:
  • np.inf (6 caracteres)
  • math.inf (8 caracteres; nuevo en python 3.5)
  • float('inf') (12 caracteres)

Eso significa que si ya ha importado NumPy, puede ahorrarse 6 (o 2) caracteres por aparición en comparación con float('inf') (o math.inf ).

  1. Porque es más fácil de recordar.

Al menos para mí, es mucho más fácil recordar np.inf que eso, necesito llamar a float con una cadena.

Además, NumPy define algunos alias adicionales para el infinito:

 np.Inf np.inf np.infty np.Infinity np.PINF

También define un alias para el infinito negativo:

 np.NINF

Del mismo modo para nan :

 np.nan np.NaN np.NAN
  1. Las constantes son constantes

Este punto está basado en CPython y podría ser completamente diferente en otra implementación de Python.

Una instancia float de CPython requiere 24 bytes:

 >>> import sys >>> sys.getsizeof(np.inf) 24

Si puede reutilizar la misma instancia, puede ahorrar mucha memoria en comparación con la creación de muchas instancias nuevas. Por supuesto, este punto es mudo si crea su propia constante inf , pero si no lo hace, entonces:

 a = [np.inf for _ in range(1000000)] b = [float('inf') for _ in range(1000000)]

b usaría 24 * 1000000 Bytes (~23 MB) más de memoria que a .

  1. Acceder a una constante es más rápido que crear la variable.

     %timeit np.inf 37.9 ns ± 0.692 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) %timeit float('inf') 232 ns ± 13.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each) %timeit [np.inf for _ in range(10000)] 552 µs ± 15.4 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) %timeit [float('inf') for _ in range(10000)] 2.59 ms ± 78.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

Por supuesto, puede crear su propia constante para contrarrestar ese punto. Pero, ¿por qué molestarse si NumPy ya lo hizo por ti?

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda