Bre*_*arn 192
>>> import math
>>> import numpy as np
>>> import scipy
>>> math.pi == np.pi == scipy.pi
True
Run Code Online (Sandbox Code Playgroud)
所以没关系,它们都是一样的价值.
所有三个模块提供pi值的唯一原因是,如果您只使用三个模块中的一个,则可以方便地访问pi而无需导入另一个模块.他们没有为pi提供不同的价值观.
jba*_*bay 42
需要注意的一点是,当然,并非所有的库都会对pi使用相同的含义,因此了解您正在使用的内容永远不会受到伤害.例如,符号数学库Sympy对pi的表示与数学和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
Run Code Online (Sandbox Code Playgroud)
如果我们看它的源代码,scipy.pi正是math.pi;事实上,它被定义为
import math as _math
pi = _math.pi
Run Code Online (Sandbox Code Playgroud)
在他们的源代码中,被math.pi定义为等于3.14159265358979323846并被numpy.pi定义为等于; 两者都远高于 Python 中浮点数的 15 位精度,因此使用哪一个并不重要。3.141592653589793238462643383279502884
也就是说,如果您尚未使用 numpy 或 scipy,则导入它们只是为了np.pi或scipy.pi会添加不必要的依赖项,而math是 Python 标准库,因此不存在依赖项问题。例如,对于pipython 中的张量流代码,可以使用tf.constant(math.pi).
| 归档时间: |
|
| 查看次数: |
141733 次 |
| 最近记录: |