如何用Python计算数据集的列方差平均值与行方差平均值
Python实现数据集列方差、列方差均值及行方差均值计算
待处理数据集
| a | b | c | d |
|---|---|---|---|
| 5 | 6 | 32 | 12 |
| 9 | 8 | 16 | 23 |
| 15 | 8 | 14 | 20 |
需求实现方案
下面分别用Pandas(适合结构化数据处理)和NumPy(适合数值计算)两种常用库实现需求:
1. Pandas实现
import pandas as pd # 构造数据集 data = { 'a': [5, 9, 15], 'b': [6, 8, 8], 'c': [32, 16, 14], 'd': [12, 23, 20] } df = pd.DataFrame(data) # 计算每列的样本方差(默认自由度ddof=1,若要总体方差需指定ddof=0) column_variances = df.var() print("各列方差:") print(column_variances) # 计算所有列方差的平均值 avg_column_variance = column_variances.mean() print(f"\n所有列方差的平均值:{avg_column_variance:.2f}") # 计算每行的样本方差及平均值 row_variances = df.var(axis=1) print("\n各行方差:") print(row_variances) avg_row_variance = row_variances.mean() print(f"\n所有行方差的平均值:{avg_row_variance:.2f}")
运行后输出示例:
各列方差: a 25.000000 b 1.333333 c 81.000000 d 30.333333 dtype: float64 所有列方差的平均值:34.42 各行方差: 0 126.000000 1 30.333333 2 20.333333 dtype: float64 所有行方差的平均值:58.89
2. NumPy实现
import numpy as np # 转换为numpy数组 arr = np.array([[5, 6, 32, 12], [9, 8, 16, 23], [15, 8, 14, 20]]) # 计算列样本方差(axis=0表示按列计算,ddof=1为样本方差) col_vars = np.var(arr, axis=0, ddof=1) print("各列方差:", col_vars) # 列方差平均值 avg_col_var = np.mean(col_vars) print("所有列方差的平均值:", round(avg_col_var, 2)) # 计算行样本方差及平均值 row_vars = np.var(arr, axis=1, ddof=1) print("各行方差:", row_vars) avg_row_var = np.mean(row_vars) print("所有行方差的平均值:", round(avg_row_var, 2))
运行后输出示例:
各列方差: [25. 1.33333333 81. 30.33333333] 所有列方差的平均值: 34.42 各行方差: [126. 30.33333333 20.33333333] 所有行方差的平均值: 58.89
内容的提问来源于stack exchange,提问作者sayan sen
相关产品推荐
相关产品推荐

