我有两个2D的numpy数组(在这个例子中简化了大小和内容),它们的大小相同。
一个ID矩阵:
一个值矩阵:
我的目标是按照第一个矩阵中的ID分组,对第二个矩阵中的值进行计数和求和。
我可以用 for 循环来完成这个任务,但当矩阵的大小达到数千而不仅仅是 5x5,并且有数千个唯一的 ID 时,处理起来需要很长时间。
numpy 是否有聪明的方法或组合方法来完成这个任务?
一个ID矩阵:
1 1 1 2 2
1 1 2 2 5
1 1 2 5 5
1 2 2 5 5
2 2 5 5 5
一个值矩阵:
14.8 17.0 74.3 40.3 90.2
25.2 75.9 5.6 40.0 33.7
78.9 39.3 11.3 63.6 56.7
11.4 75.7 78.4 88.7 58.6
79.6 32.3 35.3 52.5 13.3
我的目标是按照第一个矩阵中的ID分组,对第二个矩阵中的值进行计数和求和。
1: (8, 336.8)
2: (9, 453.4)
5: (8, 402.4)
我可以用 for 循环来完成这个任务,但当矩阵的大小达到数千而不仅仅是 5x5,并且有数千个唯一的 ID 时,处理起来需要很长时间。
numpy 是否有聪明的方法或组合方法来完成这个任务?
np.unique
函数有return_*
参数。 - MB-F