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

标签 python python-3.x numpy

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

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 列。任何可以直接给我所需格式的命令。

最佳答案

您可以使用 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)

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/

相关文章:

python - 缺乏对多变量赋值Python的理解

python - aiohttp+sqlalchemy : Can't reconnect until invalid transaction is rolled back

python - 使用 Python 创建代理以将 NTLM 凭据传递给另一个代理

python - Numpy 拆分多维数组

python - Tkinter 在显示之前设置 Toplevel 的几何形状

python - 属性错误: 'module' object has no attribute 'plotting'

python - 在 Python 中通过套接字发送大量数据的正确方法是什么?

python - Python regex\d *意外行为

arrays - 您将如何拆分元素给出分区大小的 numpy 数组?

python - 同时求和 4 维矩阵的 3 个维度