选择具有不同条件的numpy数组中的数据

时间:2015-11-13 18:31:36

标签: python arrays numpy where slice

我有一个类似于:

的numpy数组
a = np.array([1,1,1],
             [1,1,1],
             [2,1,1],
             [2,3,1],
             [2,3,1],
             [2,3,1],
             [3,4,1],
             [3,4,1],
             [3,4,1],
 ])

并想提取行

a[0,:] >=2 and a[1,:] < 4 

进入b,导致:

b = np.array([2,1,1],
             [2,3,1],
             [2,3,1],
             [2,3,1],
 ])

我试过

b = a[(a[0,:] >=2) & (a[1,:] < 4 )]

b = a[np.where((a[0,:] >=2) & (a[1,:] < 4 ))]

但这不起作用。有什么想法吗?

谢谢! 乔治

2 个答案:

答案 0 :(得分:4)

您的情况是使用a的第一行和第二行,而不是第一列和第二列。 a[:, n]选择第n列,因此您需要

b = a[(a[:, 0] >= 2) & (a[:, 1] < 4)]

答案 1 :(得分:0)

我不知道如何一步完成,但你可以做到

b = a[a[:,0]>=2]
c = b[b[:,1]<4]

print c