【发布时间】:2014-03-28 18:43:18
【问题描述】:
假设我有一个如下所示的 NumPy 数组:
0 1 (2,3)
(4,5) 6 7
9 (10,) 11
如何将它拆分为以下数组的列表?条件:最终数组中没有元组,并且每个数组包含元组元素的唯一组合。也就是说,原始数组中有两个元组,因此这些元素有 4 种不同的组合。下面的第一个数组包含原始数组 (2) 和 (4) 的组合。
0 1 2
4 6 7
9 10 11
0 1 2
5 6 7
9 10 11
0 1 3
4 6 7
9 10 11
0 1 3
5 6 7
9 10 11
【问题讨论】:
-
我们能否在问题发展到这个阶段之前尝试解决问题?原始数组是如何创建的?
-
原始数组是通过在字典中查找数组元素(w/任意长度值)创建的,这解释了尴尬地方的元组。我会按照你的建议尝试重构代码。
-
如果您在每个位置生成一个元组,那么您可以将元组序列传递给
itertools.product,这样就可以相当干净地生成最终结果。