根据数组中的条件选择数组的数组?

时间:2019-07-05 07:14:06

标签: python python-3.x numpy

我有这个数组:

a = [[255,255,255,0],[255,255,254,0],[1,2,3,4],[1,4,6,8],[1,5,7,0]]

我尝试使用numpy,但我不知道该如何做。

我希望它省略a[i][3]中所有具有0的数组,也就是说,我希望输出为a=[[1,2,3,4],[1,4,6,8]],删除其最后一个索引中所有具有零的数组。我是python的初学者,我想知道执行此操作的最佳方法,谢谢。

我尝试使用numpy,但我不知道该如何做。

a=[[255,255,255,0],[255,255,254,0],[1,2,3,4],[1,4,6,8],[1,5,7,0]]
print(a[:,a!=0])

2 个答案:

答案 0 :(得分:0)

您可以使用列表理解:

a = [[255,255,255,0],[255,255,254,0],[1,2,3,4],[1,4,6,8],[1,5,7,0]]
a = [x for x in a if x[3] != 0]

输出:

[[1, 2, 3, 4], [1, 4, 6, 8]]

答案 1 :(得分:0)

如果您需要numpy解决方案。

a = np.array([[255,255,255,0],[255,255,254,0],[1,2,3,4],[1,4,6,8],[1,5,7,0]])
mask = a[:, 3] != 0 
print(a[mask])

输出:

[[1 2 3 4]
 [1 4 6 8]]