我有一个类似于以下结构的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)]
可能我必须将该列表转换为索引列表并使用它来对数组进行子集化,但是可能有内置函数或直接方式来选择数组的特定列?
答案 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]])