生成具有特定范围的随机二进制数组

2024-09-28 03:25:00 发布

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

我想生成具有特定范围1的随机二进制数组,例如,如果我有6个向量,每个向量都是6位,1的范围是1-3,那么我的结果就是([1,0,0,1,0,0],[1,0,0,0,0,0],[1,1,0,0,0,0],[1,0,1,0,0,1,0], etc),例如,给我一些0和1的组合,并使用我给出的1的范围。你知道吗

我正在使用:

arr = np.array([1] * K + [0] * (N-K))
np.random.shuffle(arr)

要生成特定数量为1的向量,我使用:

arr2 = np.array([1] * (K-K+1) + [0] * (N-1))
np.random.shuffle(arr2)

arr3 = np.array([1] * (K-K+2) + [0] * (N-2))
np.random.shuffle(arr3)

arr4 = np.array([1] * (K-K+3) + [0] * (N-3))
np.random.shuffle(arr4)

arr5 = np.array([1] * (K-K+4) + [0] * (N-4))
np.random.shuffle(arr5) 

把它们和“axis=0”连在一起,得到我想要的向量,但是这个想法效率不高,我想让它更随机,更聪明。你知道吗

谢谢


Tags: 数量np二进制etcrandom数组array向量
1条回答
网友
1楼 · 发布于 2024-09-28 03:25:00

你试过这个吗?你知道吗

while arr.sum() != total_of_1:
    arr = np.random.randint(2, size=(r, c))

其中r是行数,c是列数。你知道吗

相关问题 更多 >

    热门问题