使用特定值检索numpy数组中随机项的索引

时间:2017-01-12 21:30:30

标签: python arrays numpy random

我有一个2d numpy数组,其中包含一小部分不同的值。我想检索一个随机索引,但具有特定值。例如,这是数组:

arr = [[1,2,1,1,3],
       [4,3,4,1,1],
       [2,3,1,2,1],
       [1,2,1,1,2],
       [3,1,3,4,2]]

我想要一个任意值的随机索引,例如(2,2)。到目前为止,我能够做到这一点的唯一方法是采用任意随机索引,然后检查它是否包含我想要的值,然后重新绘制,如果它不是。这对于上面的例子来说没问题,但是我需要从大数组中检索许多随机索引。

我所描述的程序是否有方法或算法?

这应用于提供分类图像的随机像素以执行准确度评估。

1 个答案:

答案 0 :(得分:4)

您将列表转换为numpy.array,然后从np.argwhere结果中随机选择一个坐标:

import numpy as np
import random
random.choice(np.argwhere(np.array(arr)==value))