python - 从 numpy 数组中查找和删除列
问题描述
我正在尝试从数组中删除特定列:
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
or做任何事情delete
。只需按原样使用掩码:
mask = (data == target).all(axis=0)
data = data[:, ~mask]
事实上,计算不同元素的掩码可能会更快,因为这些是您想要保留的。
mask = (data != target).any(axis=0)
data = data[:, mask]
推荐阅读
- python - 我无法理解这行代码的作用?
- python - Anaconda2 ImportError:没有名为 matplotlib.pylab 的模块
- python - 张量流增量嵌套 variable_scope
- android - Kotlin - RecyclerView-android.view.InflateException 项中的 BottomNavigation:二进制 XML 文件第 91 行:膨胀类错误
- powershell - 无法向管理员发送 powershell 电子邮件
- r - 向 R networkD3::sankeyNetwork 中的链接添加渐变?
- python - 将 csv 上传到大查询时添加日期加载字段
- elasticsearch - Elasticsearch - 按术语查找文档,这只是给定查询字符串的一部分
- maximo-anywhere - Maximo Anywhere Eclipse 不显示 Platform 文件夹和平台文件夹 fater 配置的 js 文件
- ios - Swift将tableview排序到单独的部分