为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Smart猫小萌 2021-10-19 15:29:15
我有一本字典,里面有数组。我想用 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 序列。
查看完整描述

1 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

你可以试试

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

这将确保保留订单


查看完整回答
反对 回复 2021-10-19
  • 1 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号