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

如何用Numpy对每两列应用自定义函数进行计算

符合Numpy风格的逐两列分组计算方法

不用显式遍历,直接利用Numpy的数组重塑(reshape)+ 向量化运算就能高效实现需求,这是最符合Numpy风格的做法,避免了Python循环带来的性能损耗。

实现步骤与代码示例

  1. 数组重塑分组:将原矩阵的列维度拆分为「组数×每组2列」的结构,这样每一组就是你需要处理的两列。
  2. 向量化计算平方和:对每组的两列直接按指定维度计算平方和。
import numpy as np

# 示例:构造一个4行6列的矩阵
matrix = np.arange(24).reshape(4, 6)

# 1. 重塑矩阵,将列分为每2列一组
# shape 从 (4,6) 变为 (4, 3, 2) → (行数, 组数, 每组列数)
grouped_matrix = matrix.reshape(matrix.shape[0], -1, 2)

# 2. 对每组的两列计算平方和,axis=2表示沿着每组的列维度求和
sum_squares = np.sum(grouped_matrix ** 2, axis=2)

# 如果需要将结果转为列向量,可进一步重塑
column_vector = sum_squares.flatten().reshape(-1, 1)

关键说明

  • reshape(matrix.shape[0], -1, 2) 中的 -1 会让Numpy自动计算组数(总列数÷2),无需手动计算。
  • 整个过程完全是Numpy内部的向量化运算,性能远优于Python层面的循环遍历。
  • 如果原矩阵列数为奇数,可通过切片先取前偶数列(如 matrix[:, :-1]),或根据需求单独处理最后一列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:33:12