由于在Python numpy库中没有直接对Matrix求RREF的方法,度娘了好久发现在另一个科学计算包sympy中可以利用A.rref()的方法对Matrix直接求RREF,但是有另一个问题,大家一般常用的是numpy,而sympy和numpy使用的是不同的数据类型,numpy中声明Matrix一般使用array(),sympy中声明Matrix则使用Matrix()方法,所以需要先将array()类型的矩阵转换为Matrix()类型求RREF,然后再转回array()类型。
1. sympy Matrix类型与numpy array类型的相互转换
- array -> Matrix
直接使用sympy Matrix(np.array())方法构造一个matrix
- Matrix -> array
查看了sympy官方文档其提供了两种Matrix convert to array的方法:
(1) sympy.matrices.dense.matrix2numpy(m, dtyp=<'class object'>)
- 其对于sympy Matrix类型返回一个numpy array类型