在线性代数中,Determinant是一个标量值,可以根据方阵的元素计算,并对矩阵描述的线性变换的某些属性进行编码。
要计算行列式,需要切割矩阵的某些行或列。
例如矩阵A
A = np.array([[1,1],[2,2],[0,0]])
A
array([[1, 1],
[2, 2],
[0, 0]])
需要剪切最后一行
B = A[:2]
B
array([[1, 1],
[2, 2]])
然后,行列式操作可用。
np.linalg.det(B)
0.0
另一个矩阵需要切割的是列而不是行
C = A.T
C
array([[1, 2, 0],
[1, 2, 0]])
所以,切行或切列是不确定的,有没有办法在python中智能地去除零行得到一个方阵?
最佳答案
要删除全为零的行或列(即选择具有任何非零值的行或列),您可以使用以下命令。
A = np.array([[1, 2],
[0, 0],
[4, 5]])
B_rows = A[(A != 0).any(1), :] # Remove rows that are all zero.
>>> B_rows
array([[1, 2],
[4, 5]])
A = np.array([[1, 2, 0],
[3, 4, 0]])
B_cols = A[:, (A != 0).any(0)] # Remove columns that are all zero.
>>> B_cols
array([[1, 2],
[3, 4]])
关于python - 有没有办法智能地删除零行以获得 python 中的方矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56998194/