Dovrei usare scipy.pi, numpy.pi o math.pi?


137

In un progetto utilizzando SciPy e NumPy, dovrei usare scipy.pi, numpy.pio math.pi?


6
No, il fatto che tutti questi moduli forniscano la costante mi dice che c'è qualche motivo per questo?
Douglas B. Staple,

3
È perché non li usi sempre tutti e non vorresti installare e importare un modulo solo per ottenere Pi.
Lev Levitsky,

11
@LevLevitsky Ho appena iniziato a usare Python e ho notato che c'è una differenza tra math.exp e numpy.exp (numpy.exp può prendere un elenco ma math.exp vuole un float). Quindi non pensavo fosse una domanda stupida ...
Douglas B. Staple,

Risposte:


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

Quindi non importa, hanno tutti lo stesso valore.

L'unico motivo per cui tutti e tre i moduli forniscono un pivalore è quindi se si utilizza solo uno dei tre moduli, è possibile avere comodamente accesso a pi senza dover importare un altro modulo. Non stanno fornendo valori diversi per pi.


15
A parità di altre condizioni, userei math.pisemplicemente perché è nella libreria standard se il modulo non dipende numpyo scipymeno - Ma come dici, usa pi in qualunque modulo che stai importando per cominciare perché sono lo stesso valore.
mgilson,

3
Se stai già utilizzando l'uso numpy np.pi, ma non ha senso importare NumPy solo per piquando è dentro math.
asmeurer

42

Una cosa da notare è che non tutte le librerie useranno lo stesso significato per pi, ovviamente, quindi non fa mai male sapere cosa stai usando. Ad esempio, la rappresentazione matematica simbolica di pi di Sympy non è la stessa di matematica 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 non è memorizzato come costante / float, è un oggetto che contiene la costante
Naib

22
sympy's è esattamente pi, rappresentato simbolicamente, per fare matematica simbolica. gli altri sono approssimazioni in virgola mobile per fare matematica in virgola mobile.
Endolith,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.