假设我已经在这样的结构中分箱了一些数据:
data = {(1,1): [...] # list of float,
(1,2): [...],
(1,3): [...],
(2,1): [...],
... }
这里我只有两个轴用于分箱,但假设我有 N 个。现在假设例如我有 N=3 轴,我想要第二个 bin 为 1 的数据,所以我想要一个函数
(None, 1, None) -> [(1, 1, 1), (1, 1, 2), (1, 1, 3), ...
(2, 1, 1), (2, 1, 2), (2, 1, 3), ...]
所以我可以使用itertools.chain
结果
您知道每个轴的范围:
axes_ranges = [(1, 10), (1, 8), (1, 3)]
其他例子:
(None, 1, 2) -> [(1, 1, 2), (2, 1, 2), (3, 1, 2), ...]
(None, None, None) -> all the combinations
(1,2,3) -> [(1,2,3)]