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

咨询4×9矩阵从首列开始隔列元素总和的实现方法

计算4×9矩阵中从第一列开始每隔一列的元素总和

Got it! Let's break down how to calculate the sum of every other column starting from the first one in your 4×9 matrix using the sum() function. I'll cover both regular Python lists and NumPy arrays since those are the most common ways to work with matrices.


情况1:矩阵是普通Python列表(列表的列表)

假设你的矩阵 c 长这样:

c = [
    [1, 2, 3, 4, 5, 6, 7, 8, 9],
    [10, 11, 12, 13, 14, 15, 16, 17, 18],
    [19, 20, 21, 22, 23, 24, 25, 26, 27],
    [28, 29, 30, 31, 32, 33, 34, 35, 36]
]

步骤:

  1. 提取目标列的所有元素:
    我们需要取第1、3、5、7、9列(从1开始计数),对应Python的0基索引就是 0, 2, 4, 6, 8。用嵌套列表推导式可以一次性取出所有这些元素:

    target_elements = [row[i] for row in c for i in range(0, len(row), 2)]
    

    这里 range(0, len(row), 2) 生成的就是步长为2的列索引,刚好符合"每隔一列"的要求。

  2. 用sum()计算总和:
    把提取到的元素直接传入sum()函数即可:

    total = sum(target_elements)
    

简化成一行代码:

如果不想单独存中间变量,直接合并成一行也完全没问题:

total = sum(row[i] for row in c for i in range(0, len(row), 2))

情况2:矩阵是NumPy数组(数据处理常用)

如果你的矩阵是用NumPy存储的(这在数据分析场景里很常见),方法会更简洁:

首先导入NumPy并定义矩阵:

import numpy as np
c = np.array([
    [1, 2, 3, 4, 5, 6, 7, 8, 9],
    [10, 11, 12, 13, 14, 15, 16, 17, 18],
    [19, 20, 21, 22, 23, 24, 25, 26, 27],
    [28, 29, 30, 31, 32, 33, 34, 35, 36]
])

然后直接切片+求和:

total = c[:, ::2].sum()

这里 [:, ::2] 是NumPy的切片语法:

  • : 表示取所有行
  • ::2 表示列从0开始,步长为2(也就是每隔一列取一次)
    最后调用.sum()方法就能得到所有目标元素的总和。

验证结果

拿上面的示例矩阵来说,目标列的元素总和是370,不管用哪种方法计算,结果都能对上,你可以自己测试一下~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:02:37