给定一个 numpy 数组,它可以是满足给定条件的数组元素索引的子集。如何从生成的索引对创建三元组(或四元组、五元组、...)的元组?
在下面的示例中,pairs_tuples 等于 [(1, 0), (3, 0), (3, 1), (3, 2)]。triplets_tuples 应该是 [(0, 1, 3)] 因为它的所有元素(即 (1, 0), (3, 0), (3, 1))都有满足条件的成对值,而 (3, 2)才不是。
a = np.array([[0. , 0. , 0. , 0. , 0. ],
[0.96078379, 0. , 0. , 0. , 0. ],
[0.05498203, 0.0552454 , 0. , 0. , 0. ],
[0.46005028, 0.45468466, 0.11167813, 0. , 0. ],
[0.1030161 , 0.10350956, 0.00109096, 0.00928037, 0. ]])
pairs = np.where((a >= .11) & (a <= .99))
pairs_tuples = list(zip(pairs[0].tolist(), pairs[1].tolist()))
# [(1, 0), (3, 0), (3, 1), (3, 2)]
如何到达下面?
triplets_tuples = [(0, 1, 3)]
quadruplets_tuples = []
quintuplets_tuples = []