Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我应该使用scipy.pi、numpy.pi还是math.pi?_Python_Numpy_Scipy_Pi - Fatal编程技术网

Python 我应该使用scipy.pi、numpy.pi还是math.pi?

Python 我应该使用scipy.pi、numpy.pi还是math.pi?,python,numpy,scipy,pi,Python,Numpy,Scipy,Pi,在使用SciPy和NumPy的项目中,我应该使用SciPy.pi,NumPy.pi,还是math.pi >>> import math >>> import numpy as np >>> import scipy >>> math.pi == np.pi == scipy.pi True 所以没关系,它们都是相同的值 所有这三个模块都提供一个pi值的唯一原因是,如果您只使用这三个模块中的一个,您可以方便地访问pi,而无需

在使用SciPy和NumPy的项目中,我应该使用
SciPy.pi
NumPy.pi
,还是
math.pi

>>> import math
>>> import numpy as np
>>> import scipy
>>> math.pi == np.pi == scipy.pi
True
所以没关系,它们都是相同的值


所有这三个模块都提供一个
pi
值的唯一原因是,如果您只使用这三个模块中的一个,您可以方便地访问pi,而无需导入另一个模块。它们并没有为pi提供不同的值。

需要注意的一点是,当然,并非所有库都会使用相同的pi值,因此了解您使用的是什么不会有什么坏处。例如,符号数学库Sympy的pi表示形式与math和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

不,所有这些模块都提供常量这一事实告诉我,这是有原因的?因为您并不总是使用所有模块,而且您不希望安装和导入模块只是为了获得Pi。@LevLevitsky我刚开始使用python,我注意到math.exp和numpy.exp之间存在差异(numpy.exp可以获取列表,但math.exp需要浮点)因此,我不认为这是一个愚蠢的问题……在所有其他条件相同的情况下,我会使用
math.pi
,因为如果模块不依赖于
numpy
scipy
,那么它就在标准库中——但正如您所说的,在导入的任何模块中使用pi,因为它们都是相同的值。我如果您已经在使用numpy,请使用
np.pi
,但是在
math
中导入numpy仅用于
pi
是没有意义的。sympy pi不是以常量/浮点形式存储的,它是一个包含常量的对象。sympy的正是pi,用符号表示,用于进行符号数学运算。其他的是浮点近似值做浮点数学的最佳选择。