np.linalg.inv方法详解

代码

>>> import numpy
>>> ac = [[3, 4], [2,8]]
>>> ac = numpy.array(ac)
>>> print(numpy.linalg.inv(ac))
[[ 0.5    -0.25  ]
 [-0.125   0.1875]]
>>> print(numpy.linalg.inv(ac)*16)
[[ 8. -4.]
 [-2.  3.]]
>>> 

经过手动计算,额,技巧,得到的结果也是如此。
若是换成不可逆的矩阵呢?
看代码!

>>> import numpy
>>> bc = [[0,1],[0,3]]
>>> bc = numpy.array(bc)
>>> print(numpy.linalg.inv(bc))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<__array_function__ internals>", line 6, in inv
  File "/home/jiangyun/anaconda3/lib/python3.7/site-packages/numpy/linalg/linalg.py", line 547, in inv
    ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
  File "/home/jiangyun/anaconda3/lib/python3.7/site-packages/numpy/linalg/linalg.py", line 97, in _raise_linalgerror_singular
    raise LinAlgError("Singular matrix")
numpy.linalg.LinAlgError: Singular matrix
>>> 

好像不行,那就换一个

>>> cd = [[1, 2], [3, 4], [22, 3]]
>>> cd = numpy.array(cd)
>>> print(numpy.linalg.inv(cd))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<__array_function__ internals>", line 6, in inv
  File "/home/jiangyun/anaconda3/lib/python3.7/site-packages/numpy/linalg/linalg.py", line 542, in inv
    _assert_stacked_square(a)
  File "/home/jiangyun/anaconda3/lib/python3.7/site-packages/numpy/linalg/linalg.py", line 213, in _assert_stacked_square
    raise LinAlgError('Last 2 dimensions of the array must be square')
numpy.linalg.LinAlgError: Last 2 dimensions of the array must be square

所以,这个函数是一个求方阵的逆矩阵的函数,要求方阵本身可逆,所以挺鸡肋的,对于很多不可逆的方阵是没办法的!

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值