假设我有以下格式的数据:
C0 C1 C2 C3 C4 C5 C6 C7 C8
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 2 3 4 5 6 0 0
0 1 4 5 6 7 8 0 0
0 0 0 0 0 0 0 0 0
我想选择非零列,例如 python 中的 C1、C2、C3、C4、C5、C6
列。任何可以直接给我所需格式的命令。
最佳答案
您可以使用 any
和 numpy
索引来选择具有非零值的列。
设置
a = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 2, 3, 4, 5, 6, 0, 0],
[0, 1, 4, 5, 6, 7, 8, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype=int64)
a[:, a.any(0)]
array([[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 2, 3, 4, 5, 6],
[1, 4, 5, 6, 7, 8],
[0, 0, 0, 0, 0, 0]], dtype=int64)
关于python - 如何在python中选择矩阵中的非零列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54614050/