我有两个词组
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
而不是多个数组
答案 0 :(得分:3)
是的,您可以将np.array
放入Python词典中。只需使用a
和b
中的>>> 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]])]