У меня есть словарь, в котором есть массивы. Я хотел бы собрать эти массивы с помощью numpy и сложить их с помощью np.dstack, и я не могу понять, как это сделать.
Формат словаря показан ниже минус nxx, конечно. Кроме того, я показываю числа nx в последовательности, и хотя словарь содержит ключи n1, n2 вплоть до наибольшего значения n, на самом деле они не находятся в последовательности.
{'n0': masked_array, 'n1': masked_array, 'n2': masked_array, ..., 'nxx': masked_array}
Данные для каждой пары отображаются как
'n0': masked_array(
data=[[0.13530391454696655, 0.26814308762550354, 0.26814308762550354,
..., --, --, --],
[0.21222707629203796, 0.22386012971401215, 0.19620446860790253,
..., --, --, --],
[0.22701908648014069, 0.23818181455135345, 0.23777709901332855,
..., --, --, --],
...,
[--, --, --, ..., --, --, --],
[--, --, --, ..., --, --, --],
[--, --, --, ..., --, --, --]],
mask=[[False, False, False, ..., True, True, True],
[False, False, False, ..., True, True, True],
[False, False, False, ..., True, True, True],
...,
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True]],
fill_value=-inf,
dtype=float32)
Указание печати каждого объекта с использованием
print(arraydict['n0'])
1010 * обеспечивает *
[[0.13530391454696655 0.26814308762550354 0.26814308762550354 ... -- --
--]
[0.21222707629203796 0.22386012971401215 0.19620446860790253 ... -- --
--]
[0.22701908648014069 0.23818181455135345 0.23777709901332855 ... -- --
--]
...
[-- -- -- ... -- -- --]
[-- -- -- ... -- -- --]
[-- -- -- ... -- -- --]]
Так что, если бы они были отдельными переменными, я мог бы сделать что-то вроде (важно, чтобы n-порядок был важен)
arraystack = np.dstack((n0, n1, n2, n3, ..., nxx, ))
Я не могу на всю жизнь осмыслить, как использовать np.dstack для извлечения и суммирования каждого из словаря, начиная с n0 и далее как
arraystack = np.dstack(([arraydict[key] for key in arraydict]))
, кажется, работает, но, похоже, не поддерживает последовательность n0, n1, n2, n3.