如何在包含True和False值的数组中找到True值所在的索引?

时间:2014-07-17 20:18:39

标签: python python-2.7 numpy

我有一个带有True和False值的np.array。有点像这样:

full=[False, False, False, False, False, False, False, False, False,
    False, False, False, False, False, False, False, False, False, 
    False, False, False, False, False, False, True, False, False,
    False, False, False, False, False, False, False, False, False]

第24位有一个真正的价值。我知道

b = np.where(full)

将打印出类似这样的内容

(array([24]),)

但我只对数字24感兴趣。假设这个True值可以在完整数组中的任何位置,并且甚至可以有多个True值,我该如何检索b中的数字?

编辑:尝试更具体。基本上我试图从b中获取值并将其放入另一个np.array中。如果我将b输入到像这样的1d数组中:

桨并[b]

因为b不是数字,所以它会发回错误。

另外,重申一下,full是一个numpy数组,可以包含所有true,no true或多个true值。

1 个答案:

答案 0 :(得分:1)

您可以使用argmax(arr)作为第一个True值的索引。

正如@Alok指出的那样,如果结果为零,则必须检查arr的第一个元素是否为False