我有一个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)。到目前为止,我能够做到这一点的唯一方法是采用任意随机索引,然后检查它是否包含我想要的值,然后重新绘制,如果它不是。这对于上面的例子来说没问题,但是我需要从大数组中检索许多随机索引。
我所描述的程序是否有方法或算法?
这应用于提供分类图像的随机像素以执行准确度评估。
答案 0 :(得分:4)
您将列表转换为numpy.array
,然后从np.argwhere
结果中随机选择一个坐标:
import numpy as np
import random
random.choice(np.argwhere(np.array(arr)==value))