我有一个基于这种格式[[x,y],[x,y]...]
的numpy数组,我希望将y
的{{1}}值组合在一起
示例x
我希望这成为array = [[0,0],[1,1],[2,4],[4,6],[2,2],[3,7],[1,9],[4,16],[5,1],[5,2],[0,0]]
- 不需要订购
好像现在我想不出简单有效地做到这一点的方法,可能有助于添加我的实际数组使用时间戳作为我的newArray = [[0,0],[1,10],[2,6],[3,7],[4,22],[5,3]]
值,例如x
并且是183083大小也不错。
任何有用的帮助!
答案 0 :(得分:1)
如果性能有问题,可以使用纯numpy
解决方案:Sum array by number in numpy
以下是使用collections.defaultdict
的基于字典的方法。这通过迭代数组中的每一行并按键求和值来实现。
import numpy as np
from collections import defaultdict
A = np.array([[0,0],[1,1],[2,4],[4,6],[2,2],[3,7],[1,9],[4,16],[5,1],[5,2],[0,0]])
d = defaultdict(int)
for i, j in A:
d[i] += j
res = np.array(sorted(d.items()))
print(res)
array([[ 0, 0],
[ 1, 10],
[ 2, 6],
[ 3, 7],
[ 4, 22],
[ 5, 3]])
答案 1 :(得分:1)
以下是使用switch (state ) {
case ("installing"):
console.log("[PWA] Service Worker is installing...");
break;
case ("installed"):
console.log("[PWA] Service Worker Install successful");
break;
case ("redundant"):
console.log("[PWA] Service Worker Install failed");
break;
case ("activated"):
if (navigator.serviceWorker.controller) {
break;
}
console.log('[PWA] Service Worker is offline')
// Show an offline style
// showOfflineToast();
break;
}
collections.Counter
答案 2 :(得分:0)
这是典型的分组操作。 numoy不支持这些开箱即用,但numpy-indexed包确实(免责声明:我是它的作者):
import numpy_indexed as npi
keys, sums = npi.group_by(A[:, 0]).sum(A[:, 1])
此解决方案以完全矢量化的方式工作;所以没有for python中的数组循环,也推广到很多其他场景。它可以使用pip或conda安装。