2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python 计算众数 中位数 分位数 偏度 峰度

python 计算众数 中位数 分位数 偏度 峰度

时间:2022-06-01 11:40:42

相关推荐

python 计算众数 中位数 分位数 偏度 峰度

文章目录

1. 众数、中位数、分位数2. 偏度、峰度

1. 众数、中位数、分位数

使用 numpy 的 median 函数可以得到其中位数,quantile 函数可以得到其分位数,但 numpy 包目前还没有计算众数的函数。例如:

>>> a = [8, 19, 34, 9, 18]>>> np.median(a) # 得到数组 a 的中位数18.0>>> np.quantile(a, 0.25) # 得到数组 a 的上四分位数9.0>>> np.quantile(a, 0.5) # 得到数组 a 的中位数18.0>>> np.quantile(a, 0.75) # 得到数组 a 的下四分位数19.0

pandas 可以使用 median,quantile,mode 函数分别计算中位数,分位数与众数。例如:

>>> df = pd.DataFrame(np.array([[85, 68, 90], [82, 63, 88], [84, 90, 88]]), columns=['统计学', '高数', '英语'], index=['张三', '李四', '王五'])>>> df统计学 高数 英语张三 85 68 90李四 82 63 88王五 84 90 88>>> df.median() # 得到每一列的中位数统计学 84.0高数68.0英语88.0dtype: float64>>> df.iloc[0, :].median() # 得到第一行的中位数85.0>>> df.quantile(0.25, axis = 1) # 得到所有行的上四分位数张三 76.5李四 72.5王五 86.0Name: 0.25, dtype: float64>>> df.iloc[2, :].quantile(0.75) # 得到第三行的下四分位数89.0>>> df.mode() # 得到所有列的众数统计学 高数 英语0 82 63 88.01 84 68 NaN2 85 90 NaN

2. 偏度、峰度

在计算一个样本的偏度或峰度时,对于一般的数组类型,要用到统计分析工具包 scipy,对于 pandas 中的数据类型,可以调用 pandas 自带的计算偏度或峰度的函数。

>>> import scipy.stats as st>>> a = [89, 23, 45, 18]>>> st.skew(a) # 计算偏度0.7565543738808015>>> st.kurtosis(a) # 计算峰度-1.0489580648783101

需要注意的是,pandas 计算峰度时需要至少 4 个数据。

>>> import pandas as pd>>> import numpy as np>>> 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.iloc[1, :].skew() # 计算第二行的偏度-1.3294040702410526>>> df.skew(axis = 0) # 计算所有列的偏度统计学 -0.935220高数1.498959英语 -1.545393dtype: float64>>> df.skew(axis = 1) # 计算所有行的偏度张三 -1.373033李四 -1.329404王五 0.000000dtype: float64>>> df1 = pd.DataFrame(np.array([[85, 68, 90, 65], [82, 63, 88, 83], [84, 90, 78, 90], [72, 68, 91, 84]]), columns=['统计学', '高数', '英语', '计算机'], index=['张三', '李四', '王五', '马六'])>>> df1统计学 高数 英语 计算机张三 85 68 90 65李四 82 63 88 83王五 84 90 78 90马六 72 68 91 84>>> df1.kurt(axis = 0) # 计算 df1 所有列的偏度统计学 3.090874高数3.365664英语3.090874计算机 2.769386dtype: float64>>> df1.iloc[:, 2].kurt() #计算 df1 第 3 列的偏度3.090874188966101

转载于个人微信公众号:

Python 数据科学与数学建模

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。