为什么我不能使用设定信号通过将scipy作为sp导入?

2024-06-15 01:36:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用scipy.signal.ltiscipy.signal.impulse函数来计算传递函数。我用以下方式导入scipy模块。在

import scipy as sp
import numpy as np
import matplotlib.pyplot as plt
from math import *

但是,当我键入以下脚本时

^{pr2}$

内核给出一个错误:

---> 10 tf = sp.signal.lti(numH, denH)
AttributeError: 'module' object has no attribute 'signal' 

我尝试了另一种方法来导入信号模块

from scipy.signal import lti, step, impulse

然后,剧本起作用了

tf = lti(numH, denH)

所以,我的问题是,我们必须导入脚本中的每个子包吗?那么导入scipy包的意义何在?在

谢谢。在


Tags: 模块函数fromimport脚本signaltfas
2条回答

来自scipy文档:

Using any of these subpackages requires an explicit import. For example, import scipy.cluster.

from scipy import cluster。在

做一个简单的

import scipy

查看site-packages/scipy/__init__.py文件以了解更多详细信息。将其与numpyinit进行比较。在

numpy是一个集成包,scipy是松散集成包的集合。numpy是每个人都使用的基本数字包。scipy子包彼此相对独立。我可以加载和使用sparse,而不知道signal或{}包的任何信息。在

在python包中导入模块的默认行为在包目录中的__init__.py文件中定义。您可以locate这个scipy目录,或者使用ipythonimport scipy找到这个目录,然后用问号调用scipy?来获取路径。默认情况下,scipy似乎只导入numpy。{{8}你需要一个的脚本。在

您可以按本文question中所述编辑__init__.py,这将减少样板文件的导入,尽管可能不建议这样做,因为这样会产生不可移植的代码,并可能导致名称冲突。在

相关问题 更多 >