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
是正确的