【发布时间】:2025-12-13 05:10:02
【问题描述】:
我有一个这样的 3D numpy 数组
position =
[[[ 12.86420681 825.87040876 1. 8. 0. ]
[753.26000819 280.1334669 2. 8. 1. ]
[ 51.6851021 330.65314794 3. 8. 0. ]
[661.07157006 78.15962738 4. 8. 1. ]
[878.59383346 550.5236096 5. 8. 1. ]
[774.49249941 942.74557677 6. 8. 1. ]
[301.20619756 206.50737851 7. 8. 1. ]
[240.50228642 91.21979947 8. 8. 0. ]]
[[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]]
[[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]]]
在数组的第一页上,它有一些随机值,所有其他页面都是零,我只对第一页的第 4 列感兴趣,它有 1 或 0。我想删除所有所有页面的行,如果第一页上的该行的值为“0”。
我试图通过给出以下代码来解决这个问题:
positionNew = np.delete(position, np.where(position[0] == 0), axis=1)
但我得到了这个作为输出:
positionNew =
[[[753.26000819 280.1334669 2. 8. 1. ]
[661.07157006 78.15962738 4. 8. 1. ]
[774.49249941 942.74557677 6. 8. 1. ]
[301.20619756 206.50737851 7. 8. 1. ]]
[[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]]
[[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]]
[[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]
[ 0. 0. 0. 0. 0. ]]]
但我错过了其中一个值为“1”的行,即这一行:
[878.59383346 550.5236096 5. 8. 1. ]
我哪里做错了?
【问题讨论】:
标签: python arrays numpy multidimensional-array