从字典中提取多个数组并用 numpy 堆叠它们的 Pythonic 方法

标签 python arrays numpy dictionary numpy-ndarray

我有一本字典,里面有数组。我想用 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'])

提供

[[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 序列。

最佳答案

你可以试试

arraystack = np.dstack([arraydict['n'+str(i)] for i in range(len(arraydict))])

这将确保保留顺序。

关于从字典中提取多个数组并用 numpy 堆叠它们的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54344872/

相关文章:

python - 快速查找数组中所有元素的总和小于限制的索引

python - 为什么使用 TensorFlow 进行多元线性回归时会得到不同的权重?

python - Python中的稀疏3d矩阵/数组?

javascript - 从 HTML <time> 标签中找出准确的时间

Python Binance检测对冲模式是否活跃

Javascript 数组与 Php 数组

php - 缩短连续数字之间带有连字符的数字列表

python - 如何按键对字典进行排序?

python - 在 Django 中添加 ManyToManyField 时出错

arrays - Golang - 如何将数组 ( [ ] ) "convert"转换为列表 ( ... )?