Scipy.pi, numpy.pi veya math.pi kullanmalı mıyım?


138

Scipy ve numpy kullanarak bir projede, kullanmalıyım scipy.pi, numpy.piya math.pi?


6
Hayır, tüm bu modüllerin sabit olmasını sağlaması bana bunun için bir neden olduğunu söylüyor?
Douglas B. Staple

3
Çünkü her zaman hepsini kullanmazsınız ve sadece Pi'yi almak için bir modül kurmak ve içe aktarmak istemezsiniz.
Lev Levitsky

11
@LevLevitsky Python kullanmaya yeni başladım ve math.exp ve numpy.exp arasında bir fark olduğunu fark ettim (numpy.exp bir liste alabilir, ancak math.exp bir şamandıra ister). Bu yüzden bunun aptalca bir soru olduğunu düşünmedim ...
Douglas B. Staple

Yanıtlar:


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

Yani önemli değil, hepsi aynı değer.

Her üç modülün de bir pideğer vermesinin tek nedeni , bu üç modülden sadece birini kullanıyorsanız, başka bir modülü içe aktarmak zorunda kalmadan pi'ye rahatlıkla erişebilirsiniz. Pi için farklı değerler sağlamazlar.


15
Diğer tüm şeyler eşit olduğunda, math.pisadece modülün bağlı olmadığı numpyveya scipybaşka bir şekilde standart kütüphanede olduğu için kullanacağım - Ama dediğin gibi, başlamak için hangi modülde içe aktardığınız pi'yi kullanın çünkü bunlar hepsi aynı değer.
mgilson

3
Zaten numpy kullanımını kullanıyorsanız np.pi, ama sadece ithalat numpy için mantıklı değil piİçinde zaman math.
asmeurer

43

Unutulmaması gereken bir nokta, tüm kütüphanelerin pi için aynı anlamı kullanmayacağıdır, bu yüzden ne kullandığınızı bilmek asla acımaz. Örneğin, sembolik matematik kütüphanesi Sympy'nin pi gösterimi matematik ve numpy ile aynı değildir:

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 bir sabit / şamandıra olarak depolanmaz, sabiti içeren bir nesnedir
Naib

22
sympy, sembolik matematik yapmak için sembolik olarak temsil edilen pi'dir. diğerleri ise kayan nokta matematiğini yapmak için kayan nokta yaklaşımlarıdır.
endolith
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.