查找条件选择的索引python numpy

时间:2018-10-30 12:17:47

标签: python numpy

我有一个numpy数组,数字从0到2:

myArray = np.random.randint(3, size=(255,255,1)).astype('uint8')

现在我希望所有索引的值为0。

例如(220,15)

这样我就可以做 myArray[220][15]并检索0。

2 个答案:

答案 0 :(得分:1)

您需要np.where不包含元素,并且需要zip`em作为您的首选格式:

>>> indices = np.where(myArray == 0)
>>> element_wise = zip(*indices)
>>> next(element_wise)
(0, 3, 0)

答案 1 :(得分:0)

请注意,即使第三个数组只能采用0作为索引,您的数组也具有三个维度,因此您的索引将具有三个值。

您可以使用numpy的n维枚举器遍历数组,获取值为0的索引列表。

zero_indices = [index for index, value in np.ndenumerate(myArray) if value == 0]

编辑:Slam的答案应该要快得多。