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

Python中如何绑定numpy数组同索引子数组元素并使用内置函数求和

解决方案

同索引元素绑定

直接使用numpy内置的转置方法即可实现,二维数组转置后每一行就是不同子数组同索引位置的元素集合,完全适配任意数量子数组的场景:

import numpy as np

# 示例输入,可替换为任意数量子数组的二维数组
input_arr = np.array([[1,2,3],[4,5,6]])
# 转置得到shape为(3,2)的数组,每行对应同索引元素组
bind_arr = input_arr.T
# 转为元组列表格式,输出为[(1, 4), (2, 5), (3, 6)]
output = [tuple(row) for row in bind_arr]

同索引元素求和

不需要先绑定再计算,直接调用numpy.sum指定axis=0按列求和即可,支持任意数量子数组:

sum_result = np.sum(input_arr, axis=0)
# 输出为array([5, 7, 9]),转为列表即可得到[5,7,9]

如果需要支持可变参数形式(*input传参),可以封装为以下函数:

def calc_by_index(*sub_arrays):
    full_arr = np.array(sub_arrays)
    bind_result = full_arr.T
    sum_result = np.sum(full_arr, axis=0)
    return bind_result, sum_result

# 测试传入3个子数组
bind_res, sum_res = calc_by_index([1,2,3], [4,5,6], [7,8,9])
# sum_res输出为array([12,15,18]),对应各位置元素累加结果

原有方案问题说明

  • numpy.add仅支持两个数组运算,多数组累加直接用numpy.sum指定轴即可,没有参数数量限制
  • 你写的zip语法错误,纯Python实现的正确写法为for items in zip(*input_arr):,不需要额外循环索引,不过numpy内置方法的运行效率远高于纯Python遍历,更推荐使用。

内容的提问来源于stack exchange,提问作者Sung Hoon Kim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:24:11