从 python 中的嵌套字典列表创建热图
Creating a heatmap from a list of nested dictionaries in python
我是 python 的新手,目前我一直在编写热图来比较不同语言的词向量。
我的数据是这样的:
data = [{'de': {'de': [[1]], 'es': [[0.9644323]], 'fr': [[0.9419257]], 'hu': [[0.9297902]]}},
{'fr': {'fr': [[1]], 'de': [[0.9419257]], 'es': [[0.9382719]], 'hu': [[0.91247433]]}},
{'hu': {'hu': [[1]], 'de': [[0.9419257]], 'es': [[0.9382719]], 'fr': [[0.91247433]]}}]
数据显示了一种语言的短语与其翻译之间的相似性(例如,在第一本词典中,我有一个德语短语与 ES、HU 和 FR 翻译进行比较)。我想为这个嵌套词典列表创建一个热图。如何在热图中可视化它?我试着在 seaborn 中查看热图,但我的字典是嵌套的,这让我感到困惑。
如果解决得快。您首先将带有字典的列表转换为数据框,然后使用 seaborn 的热图对其进行绘制。不过,我相信会有更优雅的解决方案。
import pandas as pd
import seaborn as sns
%matplotlib inline
frames = []
for d in data:
frames.append(pd.DataFrame.from_dict(d, orient='index'))
res = pd.concat(frames)
res = res.applymap(lambda x: x[0][0])
sns.heatmap(res, annot=True)
我是 python 的新手,目前我一直在编写热图来比较不同语言的词向量。
我的数据是这样的:
data = [{'de': {'de': [[1]], 'es': [[0.9644323]], 'fr': [[0.9419257]], 'hu': [[0.9297902]]}},
{'fr': {'fr': [[1]], 'de': [[0.9419257]], 'es': [[0.9382719]], 'hu': [[0.91247433]]}},
{'hu': {'hu': [[1]], 'de': [[0.9419257]], 'es': [[0.9382719]], 'fr': [[0.91247433]]}}]
数据显示了一种语言的短语与其翻译之间的相似性(例如,在第一本词典中,我有一个德语短语与 ES、HU 和 FR 翻译进行比较)。我想为这个嵌套词典列表创建一个热图。如何在热图中可视化它?我试着在 seaborn 中查看热图,但我的字典是嵌套的,这让我感到困惑。
如果解决得快。您首先将带有字典的列表转换为数据框,然后使用 seaborn 的热图对其进行绘制。不过,我相信会有更优雅的解决方案。
import pandas as pd
import seaborn as sns
%matplotlib inline
frames = []
for d in data:
frames.append(pd.DataFrame.from_dict(d, orient='index'))
res = pd.concat(frames)
res = res.applymap(lambda x: x[0][0])
sns.heatmap(res, annot=True)