Python 如何使用numpy将矩阵简化为行梯队形式?

Python 如何使用numpy将矩阵简化为行梯队形式?,python,matrix,Python,Matrix,我试图得到任何用(3x1)矩阵扩充的平方矩阵A(nxn),并将其简化为行梯队。我试过一些方法,但似乎效果不太好,我想不出来 def第一列0(A): def row_梯队(A、b): 当, A=np.array([2,1,3,1],[1,2,-1,2.5],[4,2,-1,1]]) 第一列0(A) 执行时,输出应为 数组([3,1.,-2,1.1], [0,1.667,-4.33333,1.633333333, [0,0.,-9.8,0.84]])我确信numpy没有这个。检查 但是,我建议您检查

我试图得到任何用(3x1)矩阵扩充的平方矩阵A(nxn),并将其简化为行梯队。我试过一些方法,但似乎效果不太好,我想不出来

def第一列0(A):

def row_梯队(A、b):

当,
A=np.array([2,1,3,1],[1,2,-1,2.5],[4,2,-1,1]])
第一列0(A)

执行时,输出应为
数组([3,1.,-2,1.1],
[0,1.667,-4.33333,1.633333333,

[0,0.,-9.8,0.84]])
我确信
numpy
没有这个。检查

但是,我建议您检查
scipy
sympy


此外,您还可以检查人们以前遇到过的更多类似问题。此问题已通过numpy解决,但需要手动创建。

您可以使用Symphy库,该库具有方法rref()

如果以前没有Symphy软件包,则可能必须安装它

B=np.copy(A)
for i in range(1,len(B)):

    B[i]=B[i]-(B[i,0]/B[0,0])*(B[0])

return B
Ab=np.column_stack((A,b))
C=np.copy(Ab)
first_column_zeros(Ab)

for i in range(1,len(C)):
    C[i]=(C[i])-((C[i,i-1])/(C[i-1,i-1]))*c[0]

return C
from sympy import *
m = Matrix([
        [.85, -.15, -.7, 0, 0],
        [-.15, .8, -.4, -.25, 0],
        [-.1, -.1, .45, -.25, 0],
        [-.25, -.1, -.4, .75, 0]])
M_rref = m.rref()
print("The Row echelon form of matrix M and the pivot columns : {}".format(M_rref))