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

pvcm50d1  于 2023-03-02  发布在  其他
关注(0)|答案(3)|浏览(140)

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

wfauudbj

wfauudbj1#

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

所以没关系,它们都是相同的值。
这三个模块都提供pi值的唯一原因是,如果你只使用其中一个模块,你可以方便地访问pi,而不必导入另一个模块,它们没有提供不同的pi值。

x8diyxa7

x8diyxa72#

有一点需要注意,当然,并非所有的库都对pi使用相同的含义,所以知道你在使用什么也没什么坏处,例如,符号数学库Symy对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
j5fpnvbx

j5fpnvbx3#

如果我们看它的源代码,scipy.pi就是math.pi;事实上,它被定义为

import math as _math
pi = _math.pi

在它们的源代码中,math.pi被定义为等于3.14159265358979323846并且numpy.pi被定义为等于3.141592653589793238462643383279502884;这两种类型的精度都远远高于Python中浮点数的15位精度,所以使用哪一种都没有关系。
也就是说,如果你还没有使用numpy或scipy,只为np.piscipy.pi导入它们会增加不必要的依赖性,而math是Python标准库,所以不存在依赖性问题,例如,对于python中张流代码中的pi,可以使用tf.constant(math.pi)

相关问题