我想生成一个大小为41003的数组,其中包含0和1。但是1的数量应该是100。如何在python中做到这一点?
我尝试使用
生成np.random.randint(2, size=41003)
但1的数量不是100。
答案 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