You need to enable JavaScript to run this app. Julia中使用groupby实现双数组分组并计算对应组均值的方法
优惠活动
大模型
产品
解决方案
定价
更多

Julia中使用groupby实现双数组分组并计算对应组均值的方法

按a1分组计算a2对应均值的实现方法

方法1:纯Python原生实现(无第三方依赖)

  • 核心逻辑:同步遍历两个等长数组,以a1的元素作为分组标识,将对应的a2值归集到同一组存储,最后逐组计算算术平均值
  • 实现代码:
a1 = [1, 1, 3, 4, 6, 6]
a2 = [1, 2, 3, 4, 5, 6]

group_storage = {}
# 同步遍历两个数组的元素,按a1的键归集a2的值
for group_key, item in zip(a1, a2):
    group_storage.setdefault(group_key, []).append(item)

# 逐组计算均值,输出结果与预期完全匹配
result = [sum(value_list) / len(value_list) for value_list in group_storage.values()]
  • 补充说明:Python 3.7 及以上版本的内置字典会自动保留分组首次出现的插入顺序,最终输出的均值顺序和题目预期完全一致;如果使用更低版本的Python,将内置字典替换为collections.OrderedDict即可保证分组顺序不混乱。

方法2:Pandas 实现(适合批量数据处理场景)

  • 核心逻辑:依托pandas的分组聚合能力,直接对a2序列按a1的分组键做均值计算,省去手动归集分组的重复逻辑
  • 实现代码:
import pandas as pd

a1 = [1, 1, 3, 4, 6, 6]
a2 = [1, 2, 3, 4, 5, 6]

# 分组求均值后转换为普通列表
result = pd.Series(a2).groupby(a1).mean().tolist()
  • 补充说明:该方法在数据量较大时计算效率更高,会自动校验等长序列的索引对齐关系,不需要手动编写遍历归集的逻辑,计算结果和预期完全一致。

注意:实现前请确认a1和a2的长度完全一致,避免出现索引错位导致的计算结果错误。


内容的提问来源于stack exchange,提问作者Mohammad Saad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 07:36:04