15

我有一个 numpy 数组,我想从数组中创建一个字典。

更具体地说,我想要一个具有与行相对应的键的字典,因此键 1 应该是第 1 行的总和。

s1 是我的数组,我知道如何获得行的总和,但是在numpy.sum(s1[i])其中 i 是行。

我正在考虑创建一个循环,我可以在其中计算行的总和,然后将其添加到字典中,但我是编程新手,所以我不确定如何执行此操作或是否可能。

有人有什么建议吗?

编辑

我使用 range 函数创建了键值。然后压缩钥匙和阵列。

mydict = dict(zip(keys, s1))
4

1 回答 1

21

我会在精神上做一些与你类似的事情dict(zip(keys, s1)),但有两个小改动。

首先,我们可以使用enumerate,其次,我们可以调用 s 的sum方法ndarray。例子:

>>> arr = np.arange(9).reshape(3,3)
>>> arr
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> arr.sum(axis=1)
array([ 3, 12, 21])
>>> dict(enumerate(arr.sum(axis=1)))
{0: 3, 1: 12, 2: 21}
于 2013-11-15T00:52:16.723 回答