numpy.linalg.LinAlgError: Singular matrix 问题解决
问题
在对numpy的矩阵用np.linalg.inv方法时报错
numpy.linalg.LinAlgError: Singular matrix
原因
A=np.matrix([[1,2],[-1,-3]]) print(A) print(type(A)) B=np.linalg.inv(A) print(B) print(type(B))
可以得到结果
[[ 1 2] [-1 -3]] <class 'numpy.matrixlib.defmatrix.matrix'> [[ 3. 2.] [-1. -1.]] <class 'numpy.matrixlib.defmatrix.matrix'>
说明矩阵A是可逆的
更改数据
A=np.matrix([[0,0],[0,0]])
B=np.linalg.inv(A)
由于A不可逆,则会出现报错信息:
numpy.linalg.LinAlgError: Singular matrix
我们可以加一个try语句做异常处理
try: A = np.array([[0,0],[0,0]]) print(A) B=np.linalg.inv(A) except: print("矩阵不存在逆矩阵") else: print(B)
[[0 0]
[0 0]]
矩阵不存在逆矩阵