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.
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:
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.
Respuestas:
Entonces no importa, todos tienen el mismo valor.
La única razón por la que los tres módulos proporcionan un
pi
valor 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.fuente
math.pi
simplemente porque está en la biblioteca estándar si el módulo no dependenumpy
oscipy
no, pero como usted dice, use pi en cualquier módulo que esté importando para empezar porque Todo el mismo valor.np.pi
, pero no tiene sentido importar NumPy solo parapi
cuando está dentromath
.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:
fuente