Non, le fait que tous ces modules fournissent la constante me dit qu'il y a une raison à cela?
Douglas B.Staple
3
C'est parce que vous ne les utilisez pas toujours tous et que vous ne voudriez pas installer et importer un module juste pour obtenir Pi.
Lev Levitsky
11
@LevLevitsky Je viens de commencer à utiliser python et j'ai remarqué qu'il y avait une différence entre math.exp et numpy.exp (numpy.exp peut prendre une liste mais math.exp veut un float). Donc je ne pensais pas que c'était une question stupide ...
Douglas B.Staple
Réponses:
198
>>>import math
>>>import numpy as np
>>>import scipy
>>> math.pi == np.pi == scipy.pi
True
Donc peu importe, ils ont tous la même valeur.
La seule raison pour laquelle les trois modules fournissent une pivaleur est que si vous n'utilisez qu'un seul des trois modules, vous pouvez facilement accéder à pi sans avoir à importer un autre module. Ils ne fournissent pas des valeurs différentes pour pi.
Toutes choses étant égales par ailleurs, j'utiliserais math.pisimplement parce qu'il est dans la bibliothèque standard si le module ne dépend pas numpyou scipynon - Mais comme vous le dites, utilisez pi dans le module que vous importez au départ car ils tous la même valeur.
mgilson
3
Si vous utilisez déjà numpy, utilisez np.pi, mais cela n'a pas de sens d'importer NumPy uniquement pour le pimoment où il est math.
asmeurer
43
Une chose à noter est que toutes les bibliothèques n'utiliseront pas la même signification pour pi, bien sûr, donc ça ne fait jamais de mal de savoir ce que vous utilisez. Par exemple, la représentation de pi de la bibliothèque mathématique symbolique Sympy n'est pas la même que math et numpy:
sympy Pi n'est pas stocké en tant que constante / float, c'est un objet qui contient la constante
Naib
22
sympy est exactement pi, représenté symboliquement, pour faire des maths symboliques. les autres sont des approximations en virgule flottante pour faire des calculs en virgule flottante.
Réponses:
Donc peu importe, ils ont tous la même valeur.
La seule raison pour laquelle les trois modules fournissent une
pi
valeur est que si vous n'utilisez qu'un seul des trois modules, vous pouvez facilement accéder à pi sans avoir à importer un autre module. Ils ne fournissent pas des valeurs différentes pour pi.la source
math.pi
simplement parce qu'il est dans la bibliothèque standard si le module ne dépend pasnumpy
ouscipy
non - Mais comme vous le dites, utilisez pi dans le module que vous importez au départ car ils tous la même valeur.np.pi
, mais cela n'a pas de sens d'importer NumPy uniquement pour lepi
moment où il estmath
.Une chose à noter est que toutes les bibliothèques n'utiliseront pas la même signification pour pi, bien sûr, donc ça ne fait jamais de mal de savoir ce que vous utilisez. Par exemple, la représentation de pi de la bibliothèque mathématique symbolique Sympy n'est pas la même que math et numpy:
la source