Python:使用dict和元组列表来创建一个numpy数组

时间:2018-02-03 17:42:15

标签: python python-2.7 numpy

我在python dict对象中有五个键/值对:

dict1 = {0:3, 1:2, 2:2, 3:2, 4:3}

我有一个元组列表:

list_of_tuples = [(0, 1), (0, 4), (2, 3)]

我想要一个形状为(5, 5, 2)的numpy数组,其中包含每个元组值的dict对象的值。我从dict对象中的键数得到5,从每个元组中的值数得到2

那是:

  • 在numpy数组的(0, 1)位置,我想要一个值为(3, 2)的numpy数组;
  • 在numpy数组的(0, 4)位置,我想要一个值为(3, 3)的numpy数组;
  • 在numpy数组的(2, 3)位置,我想要一个值为(2, 2)的numpy数组;
  • 在numpy数组的所有其他位置,我想要一个值为(4, 4)的numpy数组,

我使用(4, 4)作为空位的指标。

有一种不错的Pythonic方式吗?

1 个答案:

答案 0 :(得分:2)

您可以使用np.full创建一个包含4s的数组,然后填充它:

a = np.full((5, 5, 2), 4)
for x, y in list_of_tuples:
     a[x, y] = dict1[x], dict1[y]