首页 > 解决方案 > numpy在python列上对基于矩阵的条件进行切片

问题描述

X = np.arange(1, 26).reshape(5, 5)
X[:,1:2] % 2 == 0

条件应该只应用于第二列我想要条件为真的整个矩阵像

[array([[False,  True, False,  False, False],
       [ False, False,  False, False,  False],
       [False,  True, False,  False, False],
       [ False, False,  False, False,  False],
       [False,  True, False,  False, False]])]

它给出了错误 IndexError: boolean index did not match indexed array along dimension 1; 维度为 5,但对应的布尔维度为 1

标签: pythonnumpynumpy-slicing

解决方案


这是你想要的吗?

import numpy as np
X = np.arange(1, 26).reshape(5, 5)
X=[X[::] % 2 == 0]
print(X)

输出

[array([[False,  True, False,  True, False],
       [ True, False,  True, False,  True],
       [False,  True, False,  True, False],
       [ True, False,  True, False,  True],
       [False,  True, False,  True, False]])]

推荐阅读