gpt4 book ai didi

python - SciPy/NumPy 导入指南

转载 作者:太空狗 更新时间:2023-10-29 18:07:49 33 4
gpt4 key购买 nike

注意:我检查了重复项,但没有任何内容可以清楚地回答我的问题。我相信如果我遗漏了什么,您会告诉我的!

为了清理我的代码,我一直在寻找在我的程序中导入 SciPy 和 NumPy 的标准约定。我知道没有严格的指导方针,我可以按照自己的方式去做,但有时,我仍然会发现相互矛盾的指示。

例如,我在某处读到 NumPy 仅用于实现数组对象,而 SciPy 用于所有其他科学算法。所以 NumPy 应该用于数组操作,SciPy 用于其他一切......另一方面,SciPy 在其主命名空间中导入每个 Numpy 函数,例如 scipy.array()numpy.array() 相同(see this question ), 所以 NumPy 应该只在不使用 SciPy 时使用,因为它们是重复的...

使用 SciPy 和 NumPy 的推荐方法是什么?作为一名科学家,sqrt(-1) 应该返回一个复数,所以我倾向于只使用 SciPy。

现在,我的代码开始于:

import numpy as np
from scipy import *
from matplotlib import pyplot as plt

我使用 scipy 进行数学运算(例如 log10()),使用 numpy 进行数组创建/操作(例如 np.zeros())。完全使用 SciPy 而从不显式导入 NumPy 会好吗? future 的更新是否会从 SciPy 中移除 NumPy 的数组操作?

最佳答案

我建议做类似的事情

import numpy as np
import scipy as sp

相反。执行 from ... import * 总是很危险的,尤其是对于大型模块,例如 numpyscipy。以下说明了原因:

>>> any(['foo'])
True
>>> from scipy import *
>>> any(['foo'])

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
any(['foo'])
File "C:\Python27\lib\site-packages\numpy\core\fromnumeric.py", line 1575, in any
return _wrapit(a, 'any', axis, out)
File "C:\Python27\lib\site-packages\numpy\core\fromnumeric.py", line 37, in _wrapit
result = getattr(asarray(obj),method)(*args, **kwds)
TypeError: cannot perform reduce with flexible type

这里发生了什么?标准的 Python 内置函数 any 被替换为具有不同行为的 scipy.any。这可能会破坏使用标准 any 的任何代码。

关于python - SciPy/NumPy 导入指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528981/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com