我正在尝试从数组中删除特定列:
data = array([[ 6, 3, 3],
[ 7, 4, -1]])
target = array([[3]
[-1]])
我想找到 data
中与 target
相同的列索引,以便我可以调用:
np.delete(data, index, axis=1)
看起来all
和where
的某种组合可能是答案,但我就是无法让它发挥作用。
最佳答案
掩码(data == target).all(axis=0)
将检查各列是否相等。您不需要对 where
或 delete
执行任何操作。只需按原样使用蒙版即可:
mask = (data == target).all(axis=0)
data = data[:, ~mask]
事实上,计算不同元素的掩码可能会更快,因为这些是您想要保留的元素。
mask = (data != target).any(axis=0)
data = data[:, mask]
关于python - 从 numpy 数组中查找并删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61838349/