You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

2D数组按间隔行分组对应元素求和的通用实现方法咨询

通用实现方案

纯Python原生版本(无第三方依赖)

直接通过行索引取模定位累加位置,适配任意输入行数,无需提前确认分组总数:

def calc_group_sum(data: list[list[int]], k: int) -> list[list[int]]:
    # 初始化结果数组:k行,列数与输入行一致,初始值为0
    col_num = len(data[0])
    res = [[0 for _ in range(col_num)] for _ in range(k)]
    # 遍历所有行完成累加
    for row_idx, row in enumerate(data):
        target_row = row_idx % k
        for col_idx, val in enumerate(row):
            res[target_row][col_idx] += val
    return res

# 用你提供的示例数据测试
data = [[1, 7],
        [2, 8],
        [3, 9],
        [4, 10],
        [5, 11],
        [6, 12],
        [13, 14],
        [15, 16]]
k = 2
B = calc_group_sum(data, k)
print(B)
# 输出:[[22, 41], [27, 46]],完全符合预期的计算规则

Numpy版本(适合大规模数据运算)

如果允许使用数值计算库,仅需两行核心代码即可实现:

import numpy as np

def calc_group_sum_np(data: list[list[int]], k: int) -> np.ndarray:
    arr = np.array(data)
    # 先按k行一组重构维度,再对分组维度求和
    return arr.reshape(-1, k, arr.shape[1]).sum(axis=0)

# 测试同上
B = calc_group_sum_np(data, 2)
print(B.tolist())
# 输出同样为[[22, 41], [27, 46]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 22:36:03