【问题标题】:Numpy array to dictionarynumpy数组到字典
【发布时间】:2014-05-18 13:05:10
【问题描述】:

我有一个numpy 数组

[['5.1', '3.5', '1.4', '0.2', 'Setosa'],
 ['4.9', '3.0', '1.4', '0.2', 'Versicolor']]

如何将其转换为字典

{['5.1', '3.5', '1.4', '0.2']:'Setosa', ['4.9', '3.0', '1.4', '0.2']:'Versicolor'}

【问题讨论】:

  • 我假设您在该示例输出中使用 'Setosa' 和 'Versicolor' 而不是 'Iris-setosa',对吧?
  • 是的,感谢您的更正
  • 这不是 numpy 特有的吗?
  • @TooTone 确实如此。我提出的解决方案也适用于常规嵌套列表。
  • @Joost 我知道:我试过了 :)

标签: python python-3.x numpy dictionary


【解决方案1】:

您当前指定的字典无效,因为您的字典的键不能是 list 对象。但是,您可以将它们更改为元组。由于元组是不可变的,它们可以用作键。

转换您提供的示例案例的字典理解可能如下所示:

a = numpy.array([['5.1', '3.5', '1.4', '0.2', 'Setosa'],
                 ['4.9', '3.0', '1.4', '0.2', 'Versicolor']])
b = {tuple(x[:-1]) : x[-1] for x in a}

它从每个列表的前 n-1 个元素创建一个元组,然后将最后一个元素分配为值。生成的字典如下所示:

{('5.1', '3.5', '1.4', '0.2'): 'Setosa', ('4.9', '3.0', '1.4', '0.2'): 'Versicolor'}

【讨论】:

    猜你喜欢
    • 2021-04-21
    • 1970-01-01
    • 2016-01-08
    • 2016-09-13
    • 2016-10-23
    • 2016-03-05
    • 1970-01-01
    • 2013-11-28
    • 2018-09-07
    相关资源
    最近更新 更多