如何在python中选择矩阵中的非零列

Ray*_*han 2 python numpy python-3.x

假设我有以下格式的数据:

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
Run Code Online (Sandbox Code Playgroud)

我想选择非零列,例如C1, C2, C3, C4, C5, C6python中的列。任何可以直接给我所需格式的命令。

use*_*203 6

您可以anynumpy索引一起使用来选择具有非零值的列。

设置

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)
Run Code Online (Sandbox Code Playgroud)
a[:, a.any(0)]
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

  • 行将是“a[a.any(1)]” (2认同)