选择Python中具有公共属性的元素的索引
我有一个numpy数组,希望获得验证公共属性的元素的索引。例如,假设数组是np.array[1,0,0,0,1,1,0,0,1,0,1,0,0,1],我希望所有元素的索引都等于1,因此输出为[0,4,5,8,10,14] 我定义了以下过程选择Python中具有公共属性的元素的索引,python,arrays,numpy,Python,Arrays,Numpy,我有一个numpy数组,希望获得验证公共属性的元素的索引。例如,假设数组是np.array[1,0,0,0,1,1,0,0,1,0,1,0,0,1],我希望所有元素的索引都等于1,因此输出为[0,4,5,8,10,14] 我定义了以下过程 def find_indexes(A): res = [] for i in range(len(A)): if A[i] == 1: res.append(i) return res 有没有更
def find_indexes(A):
res = []
for i in range(len(A)):
if A[i] == 1:
res.append(i)
return res
有没有更像蟒蛇的方法?更具体地说,我想知道是否有类似于布尔索引的东西:
A[A>=1]
这将返回元素的索引,而不是元素本身。使用
使用
纯python的列表理解: 如果a[i]==1,则ar=[i代表rangelena中的i]
import numpy as np
x = np.array(np.array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1])
indices, = np.where(x == 1)
print(indices)
arr = np.array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1])
print np.where(arr == 1)
(array([ 0, 4, 5, 8, 10, 14]),)