我想创建一个二维数组,每行中固定数量为JArray reader = JArray.Parse(json);
List<string> returnList = new List<string>();
foreach(var token in reader){
string path = token["path"].ToString();
if(path.Contains(key)){
returnList.Add(path);
}
}
和True
。这是生成False
和True
的随机数组的代码:
False
此代码将为我提供N * N的数组,其中np.random.choice(a=[False, True], size=(N, N), p=[p, 1-p])
的概率为p
,False
的概率为1-p
。现在,我想在每行中设置固定数量的True
和False
,并且也可以随机设置。如何在Python中做到这一点?
还有一些其他相关问题,但与我要问的问题不同:
Example but without specific number of True and False
编辑: 我还应该补充一点,this链接对我也没有帮助。从我的问题中可以看出,我想要一个随机的布尔2d数组。因此创建2d数组并将其改组将无济于事(改组不会独立地对项目进行改组,它只能移动列或行),因此它不是随机数组。请打开我的问题,让人们回答。
答案 0 :(得分:0)
如果每行的True
(或False
)值的期望数量为一个且只有一个:
# size of our array
M = 5 # rows
N = 3 # columns
# create an array full of "False"
foobar = np.full((M,N), False)
# create a list of randomly picked indices, one for each row
idx = np.random.randint(N, size=M)
# replace "False" by "True" at given indices
foobar[range(M), idx] = True
不过,这种方法不能像每行多个True
值那样工作。