首页 > 解决方案 > Numpy - 如何选择最后一个元素为0的行?

问题描述

例如,我有 numpy 数组:

array1 = [[1,2, 3], [2,4, 0], [1,2, 9]]

然后我只想选择不以 0 结尾的行,例如:

[[1,2,3], [1,2,9]]

我试图通过以下方式做到这一点:

return array1[array1[-1] != 0]

但我得到一个尺寸错误

boolean index did not match indexed array along dimension 0; dimension is 8 but corresponding boolean dimension is 5

我觉得这不合逻辑,因为当我有一个 [1,2,3,4,0] 形式的数组并且我想选择非零元素时,我可以这样做array1[array1 != 0],在我看来,这两个代码位都使用相同的逻辑. 我究竟做错了什么?

标签: pythonnumpy

解决方案


我认为您的“返回”行有误。

试试这个:

return array1[array1[:, -1] != 0]

推荐阅读