gpt4 book ai didi

python - 是否可以在 sympy 中删除矩阵的所有零列和行?

转载 作者:行者123 更新时间:2023-12-05 05:17:14 25 4
gpt4 key购买 nike

我有一个这样的矩阵:

enter image description here

我想删除零行和零列,在 sympy 中有快速的方法吗?谢谢。

最佳答案

方法row_delcol_del 允许一次删除一行或一列。看起来您可能有几个,因此一次执行此步骤可能会很慢。

我可能会使用高级索引,传递要保留的行号和列号列表。

A = Matrix([[0, 0, 0, 0], [0, 1, 2, 3], [0, a, b, c], [0, 7, 8, 9]])
m, n = A.shape
rows = [i for i in range(m) if any(A[i, j] != 0 for j in range(n))]
cols = [j for j in range(n) if any(A[i, j] != 0 for i in range(m))]
A = A[rows, cols]

或者,如果您不介意使用 NumPy,这可以更短一些。

import numpy as np
A = Matrix([[0, 0, 0, 0], [0, 1, 2, 3], [0, a, b, c], [0, 7, 8, 9]])
B = np.array(A)
A = Matrix(B[np.ix_(np.any(B != 0, axis=0), np.any(B != 0, axis=1))])

关于python - 是否可以在 sympy 中删除矩阵的所有零列和行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49560618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com