Skip to main content
 首页 » 编程设计

python之分组 Numpy 数组并返回最小值

2025年05月04日22mayingbao

我有一个像这样的 ndarray:

data = [(1,"YES", 54.234),  
         (1,"YES", 1.0001),  
         (2,"YES", 4.234), 
         (3,"YES", 0.234)] 
dtypes = [("GROUPID", np.int),  
          ("HASNEAR", "|S255"),  
          ("DISTANCE", np.float64)] 
array = np.array(data, dtype=dtypes) 

有没有办法对数据进行分组并在新数组中仅返回每组中的最小距离?

在我的示例中,我有 4 行。在分组并返回最小值之后,我希望只返回 3 行。每个 GROUPID 值一个。

如果 numpy 数组不是合适的工具,您可以在 Pandas 中执行此操作吗?

谢谢

请您参考如下方法:

创建一个 pandas DataFrame,按 GROUPID 分组并按 min() 聚合:

df = pd.DataFrame(data, columns=('GROUPID','HASNEAR','DISTANCE')) 
df.groupby('GROUPID').min()