python - 从 numpy 数组中查找并删除列

标签 python numpy indexing where-clause

我正在尝试从数组中删除特定列:

data = array([[ 6,  3,  3],
              [ 7,  4, -1]])

target = array([[3]
                [-1]])

我想找到 data 中与 target 相同的列索引,以便我可以调用:

np.delete(data, index, axis=1)

看起来allwhere的某种组合可能是答案,但我就是无法让它发挥作用。

最佳答案

掩码(data == target).all(axis=0)将检查各列是否相等。您不需要对 wheredelete 执行任何操作。只需按原样使用蒙版即可:

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/

相关文章:

python - 查找列表中最小数字的索引值?

python - 仅抓取 <p> 而不嵌入 <a>

python - 除了一个维度外,所有维度上的归约运算

python - 在 numpy 结构化数组列上执行 math.sqrt

python - 对于具有排序、浮点索引和列的 DataFrame,根据 DataFrame 值使用线性插值计算值

mysql - mysql更新查询是否会在列上重建索引并一次又一次更新相同的值?

mysql - 索引键与索引单独列,哪个更快?

python - 计算数据帧中特定列(SUM、AVG、STDEV)的所有嵌套级别聚合

python - pandas 使用多种条件提取

node.js - 如何在生产模式下索引 Mongoose 字段,为什么要禁用自动索引功能?