python - 根据条件从 numpy 数组的子数组中删除行
问题描述
我有以下 numpy 数组:
x = [[1,2],[3,4],[10,1]]
y = [[5,6],[1,8],[7,8]]
z = [[10,2],[9,10],[11,12]]
xyz = np.array([x,y,z])
x
我想删除每个, y
,z
内的第一列中值为 10 的行xyz
。所以我想要的输出:
array([[[ 1, 2],
[ 3, 4]],
[[ 5, 6],
[ 1, 8],
[ 7, 8]],
[[ 9, 10],
[11, 12]]], dtype=object)
我试过xyz[xyz[:,:,0]!=10]
了,但这并不能保留xyz
. 我想我可以遍历第一个维度,切片并附加到一个新数组,但我正在寻找一个更简单(可能是单线)的解决方案。
解决方案
尝试:
np.array([a[a[:,0]!=10] for a in xyz])
但是,由于尺寸不匹配,这不再是真正的 3D numpy 数组。
推荐阅读
- eclipse - Eclipse Markdown 预览编辑器坏了?
- sql-server - 将 SQL Server 备份文件还原到 AWS RDS 实例时增加了备份文件的大小
- tkinter - 我在使用 tkinter .get() 函数调用键的值时遇到问题
- reactjs - 如何使用 React Navigation 指定 404 页面
- date - Google 表格 QUERY 返回不匹配的记录
- angular - Native Element 未在 Angular 8 中定义
- opengl - 着色器翻转面
- angular - Angular子子路由器延迟加载
- macos - 如何检查两个 macOS 应用程序,一个代码签名和公证,在其他方面是否相同?
- javascript - 通过 openlayers 渲染 opensensemap IDW 特征