将2个dicts中的值组合成一个np.array python

时间:2016-07-15 09:04:14

标签: python arrays numpy dictionary

我有两个词组

a = {0:[1,2,3,4], 1:[5,6,7,8],...}
b = {0:[4,3,2,1], 1:[8,7,6,5],...}

我想为每个键值对创建一个np.array c,如下所示

c1 = array([[1,4],[2,3],[3,2],[4,1]])
c2 = array([[5,8],[6,7],[7,6],[8,5]])

我该怎么做?是否可以将np.array存储在python dict中,以便我可以创建单个dict c而不是多个数组

2 个答案:

答案 0 :(得分:3)

是的,您可以将np.array放入Python词典中。只需使用ab中的>>> a = {0:[1,2,3,4], 1:[5,6,7,8]} >>> b = {0:[4,3,2,1], 1:[8,7,6,5]} >>> c = {i: np.array(list(zip(a[i], b[i]))) for i in set(a) & set(b)} >>> c {0: array([[1, 4], [2, 3], [3, 2], [4, 1]]), 1: array([[5, 8], [6, 7], [7, 6], [8, 5]])} dict comprehension列表。

TokenFilterFactory

答案 1 :(得分:2)

您还可以将column_stack与列表理解结合使用:

import numpy as np

[np.column_stack((a[k], b[k])) for k in b.keys()]

Out[30]:
[array([[1, 4],
        [2, 3],
        [3, 2],
        [4, 1]]), array([[5, 8],
        [6, 7],
        [7, 6],
        [8, 5]])]