我想生成具有特定范围的1的随机二进制数组,例如,如果我有6个向量,每个6位,1到1的范围,那么我的结果将是例如([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的组合,并使用我给出的1s的范围。
我正在使用:
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'连接在一起以得到我想要的向量,但这个想法效率不高,而且我想要一些东西让它更随机,更聪明。
谢谢