从dict对象创建边缘列表

时间:2017-10-31 00:05:36

标签: python numpy

我有一个dict对象:

{0: array([1, 2, 3]), 1: array([4,5,6])}

所需的输出是边缘列表:

[0, 1], [0, 2], [0, 3], [1, 4], [1, 5], [1, 6]

我怎么能在numpy中做到这一点?

1 个答案:

答案 0 :(得分:2)

使用普通list-comprehension

import numpy as np
d = {0: np.array([1, 2, 3]), 1: np.array([4,5,6])}

[[key, v] for key, vals in d.items() for v in vals.tolist()]
# [[0, 1], [0, 2], [0, 3], [1, 4], [1, 5], [1, 6]]

如果你需要一个阵列:

np.array([[key, v] for key, vals in d.items() for v in vals.tolist()])