如何生成大小为41003的0和1的数组,而1的数量应仅为100?

时间:2019-08-01 14:58:18

标签: python

我想生成一个大小为41003的数组,其中包含0和1。但是1的数量应该是100。如何在python中做到这一点?

我尝试使用

生成
np.random.randint(2, size=41003) 

但1的数量不是100。

1 个答案:

答案 0 :(得分:1)

初始化一个n = 41003零的列表。然后使用random.sample(range(n), k=100)在该列表上生成100个非重复的随机索引。
最后,将具有这些索引的列表中的值设置为1。

from random import sample

n = 41003
values = [0] * n
for i in sample(range(0, n), k=100):
    values[i] = 1

print(values.count(1)) # 100