¿Debo usar scipy.pi, numpy.pi o math.pi?


137

En un proyecto utilizando SciPy y NumPy, debería utilizar scipy.pi, numpy.pio math.pi?


66
No, el hecho de que todos estos módulos proporcionen la constante me dice que hay alguna razón para eso.
Douglas B. Staple

3
Es porque no siempre los usa a todos, y no querría instalar e importar un módulo solo para obtener Pi.
Lev Levitsky

11
@LevLevitsky Acabo de comenzar a usar python y noté que hay una diferencia entre math.exp y numpy.exp (numpy.exp puede tomar una lista pero math.exp quiere un flotador). Así que no pensé que fuera una pregunta tonta ...
Douglas B. Staple

Respuestas:


197
>>> import math
>>> import numpy as np
>>> import scipy
>>> math.pi == np.pi == scipy.pi
True

Entonces no importa, todos tienen el mismo valor.

La única razón por la que los tres módulos proporcionan un pivalor es que si está utilizando solo uno de los tres módulos, puede tener acceso convenientemente a pi sin tener que importar otro módulo. No están proporcionando valores diferentes para pi.


15
En igualdad de condiciones, lo usaría math.pisimplemente porque está en la biblioteca estándar si el módulo no depende numpyo scipyno, pero como usted dice, use pi en cualquier módulo que esté importando para empezar porque Todo el mismo valor.
mgilson

3
Si ya está usando Numpy Use np.pi, pero no tiene sentido importar NumPy solo para picuando está dentro math.
asmeurer

42

Una cosa a tener en cuenta es que no todas las bibliotecas usarán el mismo significado para pi, por supuesto, por lo que nunca está de más saber lo que está usando. Por ejemplo, la representación simbólica de pi de la biblioteca matemática Sympy no es lo mismo que matemática y numpy:

import math
import numpy
import scipy
import sympy

print(math.pi == numpy.pi)
> True
print(math.pi == scipy.pi)
> True
print(math.pi == sympy.pi)
> False

9
sympy Pi no se almacena como una constante / flotante, es un objeto que contiene la constante
Naib

22
sympy's es exactamente pi, representado simbólicamente, para hacer matemática simbólica. los otros son aproximaciones de coma flotante para hacer cálculos de coma flotante.
endolito
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.