次のような構造でいくつかのデータをビニングしたとします。
data = {(1,1): [...] # list of float,
(1,2): [...],
(1,3): [...],
(2,1): [...],
... }
ここでは、ビニング用の軸は2つしかありませんが、N個あるとします。たとえば、N = 3の軸があり、2番目のビンが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)]