gpt4 book ai didi

python - 如何从元组字典的值制作一个 numpy 矩阵?

转载 作者:行者123 更新时间:2023-12-04 10:11:54 26 4
gpt4 key购买 nike

例如,我有一个包含由单词对组成的元组和作为值的概率的字典d = {('a','b'): 0.5, ('b', 'c'): 0.5, ('a', 'd'): 0.25 ...}等等,其中元组中的每个单词都与另一个单词配对。例如,如果总共有 4 个单词,则字典的长度将为 16。

我试图将值放入一个 numpy 数组中,格式为

///  a  b  c  d

a

b

c

d

但是,我很难做到这一点。任何帮助,将不胜感激。提前致谢!

最佳答案

考虑这一点的最简单方法是您的字母/单词是索引。您要转换字母 a到指数0和信b到指数1 .

考虑到这一点,一个简单的方法是使用 index list的方法.例如,如果我们有一个包含唯一值的列表,例如 x = ['cat', 'dog', 'panda']我们可以做 x.index('dog')获取索引 1哪里'dog'出现在列表中 x .

考虑到这一点,让我们生成一些类似于您描述的数据:

import numpy as np

# I'm going to cheat a bit and use some numpy tricks to generate the data
x = np.random.random((5, 5))

values = ['alpha', 'beta', 'gamma', 'delta', 'epsilon']

your_data = {}
for (i, j), prob in np.ndenumerate(x):
your_data[(values[i], values[j])] = prob

print(your_data)

这给出了类似的东西:
{('alpha', 'beta'): 0.8066925762434737, ('alpha', 'gamma'): 0.7778280007471104, ...}

到目前为止,我们刚刚生成了一些示例数据。现在让我们反过来解决您的问题:
values = ['alpha', 'beta', 'gamma', 'delta', 'epsilon']

output = np.zeros((len(values), len(values)), dtype=float)
for key in your_data:
i = values.index(key[0])
j = values.index(key[1])
output[i, j] = your_data[key]

print(output)

这将为我们提供一个 numpy 数组,其值与您所描述的相似。

关于python - 如何从元组字典的值制作一个 numpy 矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61296684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com