Python:将2D numpy数组转换为字典

时间:2017-07-06 11:35:09

标签: python arrays numpy dictionary

考虑我有一个类似的数组:

c = [["a","b","a"],[1,2,3]]

现在我需要将这两部分结合起来,我想把它变成一个字典,它计算组合发生的频率(值是出现的次数)。 看起来应该是这样的:

combinations = {("a",1):1, ("b",2):1, ("a",3):1)}

我是一个初学者并且有一些方法,如:

(c[0][0],[-1][0]),(c[0][1],[-1][1]),...

等。用于创建我需要的对,但是如果我的数组具有不同的大小(这两个部分应该保持相同的大小),这不是非常有用。另外,我不知道如何将出现次数作为值。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用zip组合2个子列表和count来计算列表中的特定元素。

    >>> c = [['a','b','a','a'],[1,2,3,1]]
    >>> pairs = zip(c[0],c[1])
    >>> pairs
    [('a', 1), ('b', 2), ('a', 3), ('a', 1)]

    >>> result = {i: pairs.count(i) for i in pairs}
    >>> result
    {('a', 1): 2, ('b', 2): 1, ('a', 3): 1}

最后一个命令使用Dict Comprehension