【发布时间】:2021-04-17 19:31:05
【问题描述】:
在我解释之前,这是我的代码供参考:
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,所以有 50% 的机会将选择 0 或 1。我想拥有它,以便每个数组中有 3 个零和 3 个 1,但它们以随机顺序出现。我该怎么做?
另外,我怎样才能最终改变我希望零和一出现的位置?例如,如果我希望数组中的前 3 个数字为 0,而后 3 个数字为 1,该怎么办?或者如果我想让他们交替使用呢?
【问题讨论】:
-
我会用半个 0 和半个 1 填充,然后随机播放。
-
我很困惑,为什么不直接
arr = np.array([0, 0, 0, 1, 1, 1]) ; np.random.shuffle(arr)? -
@DeepSpace 我这样做的原因是另一个代码,因为我在技术上将数组中的数字分配为“团队 0”和“团队 1”
标签: python arrays sorting random shuffle