Devo usar scipy.pi, numpy.pi ou math.pi?


137

Em um projeto usando SciPy e NumPy, eu deveria usar scipy.pi, numpy.piou math.pi?


6
Não, o fato de todos esses módulos fornecerem a constante me diz que há alguma razão para isso?
Douglas B. Staple

3
É porque você nem sempre usa todos eles e não deseja instalar e importar um módulo apenas para obter o Pi.
Lev Levitsky

11
@LevLevitsky Acabei de começar a usar python e notei que há uma diferença entre math.exp e numpy.exp (numpy.exp pode fazer uma lista, mas math.exp quer um float). Então eu não acho que foi uma pergunta idiota ...
Douglas B. Staple

Respostas:


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

Portanto, não importa, todos têm o mesmo valor.

A única razão pela qual os três módulos fornecem um pivalor é que, se você estiver usando apenas um dos três módulos, poderá acessar convenientemente o pi sem precisar importar outro módulo. Eles não estão fornecendo valores diferentes para pi.


15
Todas as outras coisas são iguais, eu usaria math.pisimplesmente porque está na biblioteca padrão se o módulo não depender numpyou scipynão - mas, como você diz, use pi em qualquer módulo que esteja importando para começar, porque eles são todos com o mesmo valor.
mgilson

3
Se você já estiver usando o uso numpy np.pi, mas não faz sentido importar o NumPy apenas para piquando está dentro math.
asmeurer 11/08/16

42

Uma coisa a observar é que nem todas as bibliotecas usarão o mesmo significado para pi, é claro, portanto nunca é demais saber o que você está usando. Por exemplo, a representação simbólica de pi da biblioteca matemática simbólica, Sym, não é a mesma que math e 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 não é armazenado como uma constante / float, é um objeto que contém a constante
Naib

22
o sympy's é exatamente pi, representado simbolicamente, para fazer matemática simbólica. os outros são aproximações de ponto flutuante para fazer matemática de ponto flutuante.
endolith 22/02
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.