Python 如何在np.linalg.inv函数的奇异矩阵上传递提升误差?

Python 如何在np.linalg.inv函数的奇异矩阵上传递提升误差?,python,numpy,error-handling,Python,Numpy,Error Handling,我创建了一个奇异矩阵 mat=np.array([[1,8,50], [ 8, 64, 400], [ 50, 400, 2500]]) 我已经知道创建mat的逆函数将引发一个LinalError,我的目标是通过try和exception过程传递异常 所以我试过,这个: try: np.linalg.inv(mat) except LinAlgError: print('yes') 这是: try: np.linalg.inv(mat) except L

我创建了一个奇异矩阵

mat=np.array([[1,8,50],
[   8,   64,  400],
[  50,  400, 2500]])
我已经知道创建
mat
的逆函数将引发一个LinalError,我的目标是通过
try
exception
过程传递异常

所以我试过,这个:

try:
    np.linalg.inv(mat)
except LinAlgError:
    print('yes')
这是:

try:
    np.linalg.inv(mat)
except LinAlgError("Singular matrix"):
    print('yes')
这是:

try:
    np.linalg.inv(mat)
except numpy.linalg.LinAlgError:
    print('yes')

我总是在几次尝试中得到相同的stackoverflow,说我通过尝试处理第一个异常创建了一个异常您需要正确引用它,如:

try:
    np.linalg.inv(mat)
except np.linalg.LinAlgError:
    print('yes')
试试看:
np.linalg.inv(材料)
除np.linalg.LINALGER外:
打印(“是”)

上次尝试失败的原因是您将
numpy
库作为
np
导入,而不是作为
numpy
导入。这意味着
numpy.linalg
没有意义,因为标识符
numpy
不存在。

看看消息,
NameError:name'numpy'没有定义。
。你还记得你的进口是什么样子吗?你还记得你以前是怎么用
np
而不是
numpy
的吗?谢谢你的
np
,这确实是导入
numpy
的方式,除了np.linalg.lingalgeror:AttributeError:module'numpy.linalg'没有属性'lingalgeror'@Azertux0:
Ling
?@Azertux0:您使用的是什么版本的numpy?也许
np.linalg.linalg.linalgeror
起作用。本地
np.linalg.linalgeror
起作用。我的错,谢谢你们,它终于起作用了
np.linalg.linalgeror
是正确的