[Python 数据科学] python 计算均值、方差、标准差 Numpy,Pandas

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中,可以使用NumPy库来计算数据的标准差标准差方差的平方根,而方差可以通过计算数据与其均值之差的平方的平均值来获得。因此,要计算数据的三倍标准差,可以按照以下步骤进行操作: 1. 导入NumPy库:`import numpy as np` 2. 创建一个包含数据的NumPy数组,例如:`data = np.array(\[1, 2, 3, 4, 5\])` 3. 计算数据的均值:`mean = np.mean(data)` 4. 计算数据的标准差:`std = np.std(data)` 5. 计算三倍标准差:`three_times_std = 3 * std` 请注意,这里的数据是一个示例,你可以将其替换为你自己的数据。计算结果`three_times_std`将给出数据的三倍标准差的值。 #### 引用[.reference_title] - *1* *3* [Python数据分析——常用语](https://blog.csdn.net/qq_15028721/article/details/113624622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [检测其中的异常值(判断标准:与平均值的偏差 超过 3 倍标准差的数值)。提示:用数据生成 pandas 的 D](https://blog.csdn.net/missionnn/article/details/121191109)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心态与习惯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值