给定K,我需要得到所有可能的K x 2 numpy矩阵组合,使得在每个矩阵中除了两行和列中的1以外,其余元素都为0。比如当K = 5时,结果应该如下所示:
- [[1,0],[0,1],[0,0],[0,0][0,0]]
- [[1,0],[0,0],[0,1],[0,0][0,0]]
- [[1,0],[0,0],[0,0],[0,1][0,0]]
- [[1,0],[0,0],[0,0],[0,0][0,1]]
- [[0,0],[1,0],[0,1],[0,0][0,0]]
- [[0,0],[1,0],[0,0],[0,1][0,0]]
- ...等等
matrices = np.zeros((K, 2, num_combs), dtype=int)
,并将赋值更改为matrices[comb_indices, col_index, comb_range] = 1
。这将给你一个形状为(K, 2, num_combs)
的数组。与在我的原始版本上调用.transpose(1, 2, 0)
等效,但这将再次成为内存中的连续数组(不像转置)。 - Andras Deak -- Слава Україні