Python与数组的加法和合并

2024-06-08 16:12:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用Facebook的API收集一些关于提到的数据。我正在收集一个月和一个学期的次数(例如:香蕉)已经在一个帖子中提到。所以我现在收到的数据是这样的:

12, 0
12, 0
11, 1
11, 0
11, 1
10, 0
10, 0
10, 0

每行代表一根柱子。我想合并月份(第一列)和一个术语被提及的次数(第二列),所以看起来像这样:

12, 0
11, 2
10, 0

我试着把数据放在一个数组里,像这样:

[12, 0]
[12, 0]
[11, 1]
[11, 0]
[11, 1]
[10, 0]
[10, 0]
[10, 0]

但无法找到合并和添加列的方法。有什么办法吗?你知道吗


Tags: 数据方法apifacebook代表数组次数帖子
2条回答

假设您的数据是元组或列表的列表,那么您可以使用defaultdict并在列表上迭代,例如:

>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for m, c in data:
...     d[m] += c
>>> list(d.items())
[(10, 0), (11, 2), (12, 0)]

我不确定是否有工具可以基于第一列中的值进行合并,但是使用numpy数组可以相当快地获得所需的值。例如,对于所有11月份的帖子,首先我们将原始数组分离为仅来自11月份的数组,然后将第二列中的值相加。请注意,使用此方法,原始数组甚至不必按月份排序。你知道吗

import numpy as np
a = [[12, 0],[12, 0],[11, 1],[11, 0],[11, 1],[10, 0],[10, 1],[10, 0]]
a = np.array(a)
b = a[np.where(a == 11)[0]]
sum = np.sum(b, axis=0)[1]

相关问题 更多 >