查找值为真的布尔数组的索引

Posted

技术标签:

【中文标题】查找值为真的布尔数组的索引【英文标题】:find the index of a boolean array whose values are true 【发布时间】:2016-08-24 18:56:47 【问题描述】:

我想知道找到Boolean 数组的所有索引的最佳方法是什么,其中的值为True。例如,bool 值的数组,

import numpy as np
A = np.array([True, False, True, False, True])
true_list = A[A == True].index.tolist()

【问题讨论】:

【参考方案1】:

这很容易做到:

np.where(A)

或者:

A.nonzero()

【讨论】:

true_list, = np.where(A) 是我想要的,但是是的 :) 请注意,在上述两种情况下,结果都是一个 numpy 数组的元组,一个对应于 A 的每个维度。在这种情况下,结果将是:(array([0, 2, 4]),)。您必须执行np.where(A)[0] 才能获得array([0, 2, 4]) np.where 可用于其他类似数组的对象,例如列表,而不仅仅是 numpy 数组。

以上是关于查找值为真的布尔数组的索引的主要内容,如果未能解决你的问题,请参考以下文章

Numpy数组索引为-1和None

查找某个元素在数组中对应的索引

在 NumPy 数组中查找等于零的元素的索引

你真的了解mysql索引吗?

numpy 获取值为真的索引

IndexError:布尔索引与索引数组不匹配