【问题标题】:transform dict with nested array values使用嵌套数组值转换 dict
【发布时间】:2018-08-08 22:31:32
【问题描述】:

我有下面的示例数据,这是一个默认字典。我正在尝试将其转换为类似于下面所需输出的字典,但我无法获取与原始字典中的键匹配的键。我可以使用下面的代码获取值。非常感谢任何提示。

代码:

res[0].item()

输出:

-1.613331913948059

示例数据:

res

defaultdict(<function __main__.<lambda>>,
            {0: array([-1.6133319], dtype=float32),
             1: array([-1.278326], dtype=float32),
             2: array([-0.68584293], dtype=float32),
             3: array([-1.2741858], dtype=float32),
             4: array([-0.81194735], dtype=float32)})

期望的输出:

{0: -1.6133319,
 1: -1.278326,
 2: -0.68584293,
 3: -1.2741858,
 4: -0.81194735}

【问题讨论】:

    标签: python python-3.x numpy dictionary


    【解决方案1】:

    IIUC,这个字典理解应该可以解决问题:

    {k:v[0] for k,v in res.items()}
    
    {0: -1.6133319, 1: -1.278326, 2: -0.68584293, 3: -1.2741858, 4: -0.81194735}
    

    【讨论】:

    • 感谢您这么快回复我,这很有效。
    【解决方案2】:

    以下内容对我有用:

    {k: res[k].item() for k in res}
    

    【讨论】:

      【解决方案3】:

      这似乎成功了

      test_res={}
      
      for ids in list(res.keys()):
        test_res[ids]=res[ids].item()
      

      【讨论】:

      • 即使这样有效,它也会比字典理解慢
      猜你喜欢
      • 2018-12-06
      • 2021-08-24
      • 2021-06-02
      • 2022-07-06
      • 2021-09-26
      • 1970-01-01
      • 2015-05-17
      • 2014-09-23
      • 1970-01-01
      相关资源
      最近更新 更多