Python 导入线性代数Numpy
我试着用下面的方法Python 导入线性代数Numpy,python,numpy,Python,Numpy,我试着用下面的方法 import numpy as np from scipy import linalg as LA from np.LA import matrix_power from np.LA import multi_dot 但是我得到了以下错误: 文件“comp_functions.py”,第9行,在 从np.LA导入矩阵_幂 ModuleNotFoundError:没有名为“np”的模块 这不是由于错误的位置造成的,因为我发现在我从np添加之前,该代码是该站点上大多数其他
import numpy as np
from scipy import linalg as LA
from np.LA import matrix_power
from np.LA import multi_dot
但是我得到了以下错误:
文件“comp_functions.py”,第9行,在
从np.LA导入矩阵_幂
ModuleNotFoundError:没有名为“np”的模块
这不是由于错误的位置造成的,因为我发现在我从np添加之前,该代码是该站点上大多数其他情况的解决方案。LA import multi_dot
在以下功能中运行良好:
def N_eigenvalue(N):
'''
Calculates the eigenvalues and eigenvectors of a matrix (N) using the linalg module in scipy
'''
eigenvalues, eigenvectors = LA.eig(N)
print(eigenvalues)
print(eigenvectors)
return eigenvalues, eigenvectors
它取决于您正在使用的numpy版本,在numpy
1.17中,应按如下方式导入:
from numpy.linalg import matrix_power
from numpy.linalg import multi_dot
查看更多信息。在comp_functions.py
中,将np.LA
替换为numpy.LA
您在这里创建了一个名称空间的混合体,其中两个相似的名称指向两个不同的模块。为什么不导入numpy.linalg
和scipy.linalg
并在整个脚本中使用前缀?np.linalg.multi_dot
在导入numpy
后就已经可用了。矩阵幂也是如此AS'的名称,如np
可以在from
侧使用scipy.linalg
不包含multi\u dot
或matrix\u power
。此软件包是对numpy
软件包的补充,而不是重复。我在numpy
和scipy
导入方面的经验是坚持使用文档化和常规模式。别装聪明。