Numpy数组到字典

Vei*_*pse 1 python dictionary numpy python-3.x

我有一个numpy阵列

[['5.1', '3.5', '1.4', '0.2', 'Setosa'],
 ['4.9', '3.0', '1.4', '0.2', 'Versicolor']]
Run Code Online (Sandbox Code Playgroud)

如何将其转换为字典

{['5.1', '3.5', '1.4', '0.2']:'Setosa', ['4.9', '3.0', '1.4', '0.2']:'Versicolor'}
Run Code Online (Sandbox Code Playgroud)

Joo*_*ost 5

您当前指定的词典无效,因为词典的键不能是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}
Run Code Online (Sandbox Code Playgroud)

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

{('5.1', '3.5', '1.4', '0.2'): 'Setosa', ('4.9', '3.0', '1.4', '0.2'): 'Versicolor'}
Run Code Online (Sandbox Code Playgroud)