如何将计算均值更新数据的Python代码精简为更少行数
Python代码精简方案
原代码规律分析
- 代码核心逻辑是:对二维数组每一行的5个元素,每个元素减去「排除自身后剩余4个元素的平均值」
- 逐行逐列的均值计算可以用统一公式表达:对第i行第j列的元素,对应的均值 = (该行所有元素总和 - 第i行第j列元素) / 4
精简后代码(移除循环,用numpy向量化操作)
import pandas as pd import numpy as np df = pd.read_csv('Dataset2.csv').to_numpy() # 计算每行总和,keepdims保持维度方便后续广播计算 row_sum = df.sum(axis=1, keepdims=True) # 批量计算所有位置的新值 df = df - (row_sum - df) / 4
效果说明
精简后的代码和原代码计算结果完全一致,同时向量化操作的执行效率远高于手动for循环,数据量越大性能优势越明显。
内容的提问来源于stack exchange,提问作者Hassan Sajjad
相关产品推荐
相关产品推荐

