【发布时间】:2014-02-04 08:46:53
【问题描述】:
我有一个如下的 numpy 二维数组
gona = array([['a1', 3], ['a2', 5], ['a3', 1], ['a3', 2], ['a3', 1], ['a1', 7]])
这个数组有 2 列
我想要做的是创建一个包含 2 列的数组。第 1 列的行中应该有 'a1' 、 'a2' 、 'a3' 值,第 2 列应该有这些相应值的总和。
new_gona = array([['a1', 10], ['a2', 5], ['a3', 4]])
这里,对应的取值如下。
'a1' : 3 + 7 = 10
'a2' : 5
'a3' : 1 + 2 + 1 = 4
什么是实现这一目标的简单方法?
【问题讨论】:
-
我记得上次出现这个问题时,我看到了一个使用 Pandas 的有效解决方案,但我不记得它是什么。也许有更好的搜索技能的人可以找到它。
-
注意:运行您发布的代码会生成一个 dtype 数组
'|S2'。这意味着整数存储为字符串,而不是int32或其他一些合理的 dtype。这可能是个问题。
标签: python arrays python-2.7 numpy