仅选择numpy数组的列,其中特定行的值< X

时间:2016-09-15 07:56:01

标签: python arrays numpy indexing

我有一个类似于以下结构的numpy数组:

my_array = numpy.array([[1,1,1,2,2,2,3,3,3],  
                  [1,2,3,1,2,3,1,2,3],
                  [1,1,32,4,15,63,763,23,0],
                  [1,1,2,3,1,2,3,1,1],
                  [1,1,1,1,1,1,1,1,1]])

现在我想获得这个数组的子集,以便只得到第3行中的值为< 15。

我可以得到一个布尔列表:

list(my_array[2,:]>15)

但是我不能使用该布尔列表进行索引,如:

my_array[:,list(my_array[2,:]>15)]

可能我必须将该列表转换为索引列表并使用它来对数组进行子集化,但是可能有内置函数或直接方式来选择数组的特定列?

1 个答案:

答案 0 :(得分:1)

你不应该致电list()[...]的输入应该是numpy数组。

>>> my_array[:, my_array[2,:]>15]
array([[  1,   2,   3,   3],
       [  3,   3,   1,   2],
       [ 32,  63, 763,  23],
       [  2,   2,   3,   1],
       [  1,   1,   1,   1]])