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