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

Posted

技术标签:

【中文标题】我应该使用 scipy.pi、numpy.pi 还是 math.pi?【英文标题】:Should I use scipy.pi, numpy.pi, or math.pi? 【发布时间】:2012-09-20 15:58:18 【问题描述】:

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

【问题讨论】:

不,所有这些模块都提供常量的事实告诉我,这是有原因的? 这是因为您并不总是使用所有这些,并且您不想安装和导入模块只是为了获取 Pi。 @LevLevitsky 我刚开始使用 python,我注意到 math.exp 和 numpy.exp 之间存在差异(numpy.exp 可以获取列表,但 math.exp 需要浮点数)。所以我不认为这是一个愚蠢的问题...... 【参考方案1】:
>>> import math
>>> import numpy as np
>>> import scipy
>>> math.pi == np.pi == scipy.pi
True

所以没关系,都是一样的值。

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

【讨论】:

在所有其他条件相同的情况下,我会使用 math.pi 只是因为如果模块不依赖于 numpyscipy 否则它在标准库中——但正如你所说,在您要导入的任何模块中使用 pi 开始,因为它们都是相同的值。 如果您已经在使用 numpy,请使用 np.pi,但在 pi 中导入 NumPy 是没有意义的。【参考方案2】:

需要注意的一点是,当然,并非所有 库都会对 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

【讨论】:

sympy Pi 不存储为常量/浮点数,它是一个包含常量的对象 sympy 正好是 pi,用符号表示,用于进行符号数学运算。其他的是浮点数近似值,用于进行浮点数学运算。

以上是关于我应该使用 scipy.pi、numpy.pi 还是 math.pi?的主要内容,如果未能解决你的问题,请参考以下文章

我还应该使用啥来替代 nodejs 中的控制台?

使用 mmap() 为 2D 数组初始化共享内存,是不是还需要为后续指针映射内存?我应该改用 shm 吗?

Geofire 已存档,我还应该使用它吗?

在使用Razor Pages时你还应该使用控制器吗?

我还应该在 VueJS 中使用 jQuery 来制作动画吗?

如果我只使用flutter web(没有android或ios应用程序),我还应该在index.html和main.dart中初始化firebase应用程序两次吗?