In un progetto che utilizza SciPy e NumPy, dovrei usare scipy.pi
, numpy.pi
o math.pi
?Devo usare scipy.pi, numpy.pi o math.pi?
risposta
>>> 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 valore pi
è quindi se si utilizza solo uno dei tre moduli, è possibile accedere facilmente a Pi senza dover importare un altro modulo. Non stanno fornendo valori diversi per pi.
A parità di altre cose, vorrei usare 'math.pi' semplicemente perché è nella libreria standard se il modulo non dipende da' numpy' o 'scipy' altrimenti - Ma come dici tu, usa pi in qualsiasi modulo che stai importando per cominciare perché hanno tutti lo stesso valore. – mgilson
Se stai già usando numpy usa 'np.pi', ma non ha senso importare NumPy solo per' pi' quando è in 'math'. – asmeurer
Una cosa da notare è che non tutte le librerie utilizzeranno lo stesso significato per pi, ovviamente, quindi non fa mai male sapere cosa stai usando. Per esempio, la libreria matematica simbolica rappresentazione di Sympy di pi greco non è la stessa come la 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
Perché 'SymPy' dovrebbe avere un valore diverso?! ... – Roboticist
sympy Pi non è memorizzato come costante/mobile, è un oggetto che contiene la costante – Naib
sympy's è esattamente pi, rappresentato simbolicamente, per fare matematica simbolica. gli altri sono approssimazioni in virgola mobile per fare matematica in virgola mobile. – endolith
- 1. come usare math.pi in java
- 2. Devo usare System.out.println() o qualcos'altro?
- 3. Devo usare Angular.copy() o _.clone()?
- 4. Devo usare rand() o rand_s()?
- 5. Devo usare typeclass o no?
- 6. Devo usare nav o ul
- 7. Devo usare Point.x o Point.getX()?
- 8. Devo usare Meteor.startup() o $ (function() {})
- 9. Devo usare alias o alias_method?
- 10. Devo usare em o px?
- 11. Devo usare Pickle o cPickle?
- 12. Devo usare MapView o MapFragment
- 13. Devo usare @EJB o @Inject
- 14. Devo usare Drupal 6 o Drupal 7?
- 15. Devo usare string.isEmpty() o "" .equals (stringa)?
- 16. Devo usare PendingIntent.getService() o getBroadcast con AlarmManager?
- 17. Devo usare il prototipo o no?
- 18. Numpy: Devo usare newaxis o None?
- 19. Devo usare la forcella o i fili?
- 20. Cosa devo usare Sospensione o Timer
- 21. Devo usare window.load o document.ready jquery
- 22. Devo usare ipairs o un ciclo for
- 23. Devo usare ApplyUpdates (0) o ApplyUpdates (-1)?
- 24. Devo usare un data.frame o una matrice?
- 25. Devo usare un LINQ DataContext o molti?
- 26. Devo usare un ascoltatore o un osservatore?
- 27. Devo usare QCoreApplication :: processEvents() o QApplication :: processEvents()?
- 28. Devo usare belongsTo o hasOne in Laravel?
- 29. Devo usare window.navigate o document.location in JavaScript?
- 30. Devo usare "test" o "[" "]" nella shell POSIX?
No, il fatto che tutti questi moduli forniscono la costante mi dice che c'è qualche ragione per questo? –
È perché non li usi sempre tutti e non vorresti installare e importare un modulo solo per ottenere Pi. –
@LevLevitsky Ho appena iniziato a usare python e ho notato che c'è una differenza tra math.exp e numpy.exp (numpy.exp può fare una lista ma math.exp vuole un float). Quindi non pensavo fosse una domanda stupida ... –