利用python计算均值、方差和标准差(Numpy和Pandas)
作者:Python老猿
这篇文章主要给大家介绍了关于利用python计算均值、方差和标准差的相关资料,Numpy在Python中是一个通用的数组处理包,它提供了一个高性能的多维数组对象和用于处理这些数组的工具,它是使用Python进行科学计算的基础包,需要的朋友可以参考下
Python 中的 numpy 包 和 pandas 包都能够计算均值、方差等,本文总结一下它们的用法。
1. Numpy 计算均值、方差、标准差
一般的均值可以用 numpy 中的 mean 方法求得:
>>> import numpy as np >>> a = [5, 6, 16, 9] >>> np.mean(a) 9.0
numpy 中的 average 方法不仅能求得简单平均数,也可以求出加权平均数。average 里面可以跟一个 weights 参数,里面是一个权数的数组,例如:
>>> np.average(a) >>> 9.0 >>> np.average(a, weights = [1, 2, 1, 1]) >>> 8.4
计算方差时,可以利用 numpy 中的 var 函数,默认是总体方差(计算时除以样本数 N),若需要得到样本方差(计算时除以 N - 1),需要跟参数 ddo f= 1,例如
>>> import pnumpy as np >>> a = [5, 6, 16, 9] >>> np.var(a) # 计算总体方差 18.5 >>> np.var(a, ddof = 1) # 计算样本方差 24.666666666666668 >>> b = [[4, 5], [6, 7]] >>> b [[4, 5], [6, 7]] >>> np.var(b) # 计算矩阵所有元素的方差 1.25 >>> np.var(b, axis = 0) # 计算矩阵每一列的方差 array([1., 1.]) >>> np.var(b, axis = 1) # 计算矩阵每一行的方差 array([0.25, 0.25])
计算标准差时,可以利用 numpy 中的 std 函数,使用方法与 var 函数很像,默认是总体标准差,若需要得到样本标准差,需要跟参数 ddof =1,
>>> import pnumpy as np >>> a = [5, 6, 16, 9] >>> np.std(a) # 计算总体标准差 4.301162633521313 >>> np.std(a, ddof = 1 ) # 计算样本标准差 4.96655480858378 >>> np.std(b) # 计算矩阵所有元素的标准差 1.118033988749895 >>> np.std(b, axis = 0) # 计算矩阵每一列的标准差 array([1., 1.]) >>> np.std(b, axis = 1) # 计算矩阵每一列的标准差 array([0.5, 0.5])
2. Pandas 计算均值、方差、标准差
对于 pandas ,也可以用里面的 mean 函数可以求得所有行或所有列的平均数,例如:
>>> import pandas as pd >>> df = pd.DataFrame(np.array([[85, 68, 90], [82, 63, 88], [84, 90, 78]]), columns=['统计学', '高数', '英语'], index=['张三', '李四', '王五']) >>> df 统计学 高数 英语 张三 85 68 90 李四 82 63 88 王五 84 90 78 >>> df.mean() # 显示每一列的平均数 统计学 83.666667 高数 73.666667 英语 85.333333 dtype: float64 >>> df.mean(axis = 1) # 显示每一行的平均数 张三 81.000000 李四 77.666667 王五 84.000000 dtype: float64
若要得到某一行或某一列的平均值,则可以使用 iloc 选取改行或该列数据,后面跟 mean 函数就能得到,例如:
>>> df 统计学 高数 英语 张三 85 68 90 李四 82 63 88 王五 84 90 78 >>> df.iloc[0, :].mean() # 得到第 1 行的平均值 81.0 >>> df.iloc[:, 2].mean() # 得到第 3 列的平均值 85.33333333333333
pandas 中的 var 函数可以得到样本方差(注意不是总体方差),std 函数可以得到样本标准差,若要得到某一行或某一列的方差,则也可用 iloc 选取某行或某列,后面再跟 var 函数或 std 函数即可,例如:
>>> df.var() # 显示每一列的方差 统计学 2.333333 高数 206.333333 英语 41.333333 dtype: float64 >>> df.var(axis = 1) # 显示每一行的方差 张三 133.000000 李四 170.333333 王五 36.000000 dtype: float64 >>> df.std() # 显示每一列的标准差 统计学 1.527525 高数 14.364308 英语 6.429101 dtype: float64 >>> df.std(axis = 1) # 显示每一行的标准差 张三 11.532563 李四 13.051181 王五 6.000000 dtype: float64 >>> df.iloc[0, :].std() # 显示第 1 行的标准差 11.532562594670797 >>> df.iloc[:, 2].std() # 显示第 3 列的标准差 6.429100507328636
总结
到此这篇关于利用python计算均值、方差和标准差的文章就介绍到这了,更多相关python计算均值方差和标准差内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!