以随机顺序创建0和1数量相等的数组?

2024-09-28 05:21:53 发布

您现在位置:Python中文网/ 问答频道 /正文

在我解释之前,以下是我的代码供参考:

import numpy as np 

arrayteam = [[3,3,3,3,3,3],[2,2,2,2,2,2],[1,1,1,1,1,1]]
#nteams = 3
#nsubteam = 2

#newnums = np.zeros((len(arrayteam),len(arrayteam[0])))

subteam = [] 
for i in range(len(arrayteam)):
    subteam.append(np.random.choice([0,1],size=len(arrayteam[i]),p=[0.5,0.5]))

print (subteam)

以下是输出:

[array([0, 1, 0, 1, 1, 1]), array([1, 1, 0, 1, 0, 0]), array([1, 0, 1, 1, 1, 1])]

正如您所看到的,它随机选择0和1,这是我想要的,但是每个数组中0和1的数量是不相等的,很明显,因为p=0.5,所以它选择0或1的概率为50%。我希望每个数组中有3个0和3个1,但它们是以随机顺序出现的。我该怎么做

还有,我怎样才能准确地改变零和一出现的位置呢?例如,如果我希望数组中的前3个数字为0,第二个3为1,该怎么办?或者如果我想让他们轮换呢


Tags: 代码importnumpyforlenasnpzeros
1条回答
网友
1楼 · 发布于 2024-09-28 05:21:53

使用^{}。请注意,它在适当的位置进行洗牌,并返回None

import random
length = 3
subteam = [0] * length + [1] * length
random.shuffle(subteam)
print(subteam)

相关问题 更多 >

    热门问题