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

如何对含不等长列表的数组执行逐元素相加?np.sum方法无效求助

解决不规则嵌套列表逐元素对应相加(补0)的问题

给定不规则嵌套列表:

arr = [[7, 6], [4, 2, 7],[4,4,6,2]]

需要得到逐元素对应相加(长度不足的位置补0)的结果:[15,12,13,2],直接用np.sum(arr, axis=0)无法实现——因为原列表是不规则结构,转成numpy数组后会是object类型的一维数组,无法按axis=0进行逐位求和。以下是两种可行的解决方法:

方法一:Python原生实现

无需依赖第三方库,先统一所有子列表的长度(补0),再逐位求和:

arr = [[7, 6], [4, 2, 7],[4,4,6,2]]
# 找到最长子列表的长度
max_length = max(len(sublist) for sublist in arr)
# 给每个子列表补0到最长长度
padded_arr = [sublist + [0]*(max_length - len(sublist)) for sublist in arr]
# 逐元素求和
result = [sum(items) for items in zip(*padded_arr)]
print(result)  # 输出: [15, 12, 13, 2]

方法二:结合Numpy实现

先将不规则列表转换为规则的numpy数组(补0),再调用求和方法:

import numpy as np

arr = [[7, 6], [4, 2, 7],[4,4,6,2]]
max_length = max(len(sublist) for sublist in arr)
# 补0后转换为numpy数组
padded_np = np.array([sublist + [0]*(max_length - len(sublist)) for sublist in arr])
# 按axis=0求和并转为列表
result = padded_np.sum(axis=0).tolist()
print(result)  # 输出: [15, 12, 13, 2]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:57:14