我希望以前没人问过这个问题。我不知道怎样才能重新表述这个问题。这个post很相似,但仍然不是我要找的。在
我有一个长度可变的numpy数组(大约在4-12之间)。数组的值为0或1。我想从数组中得到一个随机样本的索引,它不是0。在
我的想法是这样做:
def sample(self):
flag = 0
while flag == 0:
sampleValue = randint(0, len(myArray())-1)
flag = myArray()[sampleValue]
return sampleValue
但这并不是一个好的代码,最终会陷入一个永无止境的while循环中。我当然可以改进一下。很有可能在python中有一种更漂亮的方法来实现这一点:)
您可以首先生成索引列表,该列表包含:
然后您可以随机获得其中一个索引,例如使用
^{pr2}$random.choice
:因此,这将返回一个索引,其中对应的值
my_array[my_idx]
是1
。在注意,如果
my_array
中没有1
,那么这将引发一个IndexError
。在您可以使用
numpy.nonzero
获得数组a
非零的索引然后用
^{pr2}$numpy.random.choice
选择其中一个值。在相关问题 更多 >
编程相关推荐