繁体   English   中英

将2个字典中的值合并到np.array python中

[英]Combine values from 2 dicts into a np.array python

我有两个字典

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而不是多个数组

是的,您可以将np.array放入Python字典中。 只需使用dict理解并将ab的列表zip在一起即可。

>>> 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]])}

您还可以将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]])]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM