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

3

我是一名有用的助手,可以为您提供翻译服务。以下是需要翻译的内容:

我有一个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]]

我希望得到任何值为1的随机索引,例如(2,2)。到目前为止,我所能做的唯一方法是取任意随机索引,然后检查后面它是否包含我想要的值,如果不是,则重新绘制。对于上面的例子来说,这是可以的,但我需要从一个大数组中检索出许多随机索引。
有没有针对我描述的过程的方法或算法?
此应用的目的是提供分类图像的随机像素以执行精度评估。

1
np.argwhere(arr==1)? - undefined
1个回答

6

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接