在Python中添加一些重复的行数据

在Python中添加一些重复的行数据,python,list,numpy,Python,List,Numpy,比方说,我在Python中有一个数组,如下所示: array=[[1,2,5,6], [1,3,6,7], [1,2,3,4], [2,3,9,8]] [[1,2,8,10], [1,3,6,7], [2,3,9,8]] ,我想用它做一个数组,总结第三和第四个数据信息,重复第1和第2个。也就是说,独特的阵列应该是这样的: array=[[1,2,5,6], [1,3,6,7], [1,2,3,4], [2

比方说,我在Python中有一个数组,如下所示:

array=[[1,2,5,6],
       [1,3,6,7],
       [1,2,3,4],
       [2,3,9,8]]
[[1,2,8,10],
 [1,3,6,7],
 [2,3,9,8]]
,我想用它做一个数组,总结第三和第四个数据信息,重复第1和第2个。也就是说,独特的阵列应该是这样的:

array=[[1,2,5,6],
       [1,3,6,7],
       [1,2,3,4],
       [2,3,9,8]]
[[1,2,8,10],
 [1,3,6,7],
 [2,3,9,8]]

有办法吗?我相信numpy有一个很酷的功能,可以有效地完成它,但我找不到它。

如果您不关心性能,Pandas提供了直观的语法:

import numpy as np, pandas as pd

A = np.array([[1,2,5,6],
              [1,3,6,7],
              [1,2,3,4],
              [2,3,9,8]])

res = pd.DataFrame(A).groupby([0, 1], sort=False).sum()\
        .reset_index().values

print(res)

array([[ 1,  2,  8, 10],
       [ 1,  3,  6,  7],
       [ 2,  3,  9,  8]], dtype=int64)
使用提供矢量化分组操作和大量其他实用程序功能的库:

import numpy_indexed as npi

np.hstack(npi.group_by(arr[:, :2]).sum(arr[:, 2:]))

非常感谢。这回答了我的问题。