描述性统计Python实现
这周学习时间也就几个小时,由于python也正在学习,Anaconda也有,所以那些安装啥的就偷懒下不写了,直接贴出python代码
数据是随机生成,计算是调用库里的函数。
经过第一周的学习,对描述性统计有了比较深的理解,不过部分公式却是没太弄明白,希望自己继续努力。
其实,这周因为一些琐事差点放弃继续做作业,还好坚持了,希望自己不要放弃,坚持到底,加油!
其中的理论知识可以到https://www.cnblogs.com/-feng/p/11220643.html去看
实例代码
import numpy as np import pandas as pd from scipy import stats# 创建随机序列: data = np.random.randint(10,50,1000) data1 = pd.Series(data) # 求众数 mod = data1.mode()[0] # 求中位数 med = data1.median() # 分位数,以四分位为例 Q1 = data1.quantile(0.25) Q2 = data1.quantile(0.5) Q3 = data1.quantile(0.75) # 算术平均 mean = data1.mean() # 加权平均 # 随机权重数组 qs = np.random.rand(data1.count()) tmp = data1*qs/qs.sum() qm = tmp.sum() # 几何平均 gmean=stats.gmean(data1) # 方差 var = data1.var() # 标准差 std = data1.std() # 极差 range = data1.max() - data1.min() # 平均差 mean_d = np.abs(data1 - data1.mean()).mean() # 四分位差 Qd = Q3 - Q1 # 异众比率 vr = 1 - data1.value_counts()[data1.mode()].sum() / data1.count() # 离散系数 v = std / mean # 峰态系数 kur = stats.kurtosis(data1) # 偏态系数 Cs = stats.skew(data1) print('众数:{0};中位数:{1};\n四分位:\n第一分位Q1:{2};第二分位Q2:{3};第三分位Q3:{4};' '\n算术平均:{5};加权平均数:{6};几何平均数:{7} ;\n方差:{8};标准差:{9};极差:{10};' '平均差:{11};四分位差:{12};\n异众比率:{13};离散系数:{14};\n峰态系数:{15};偏态系数;{16}' .format(mod, med, Q1, Q2, Q3, mean, qm, gmean, var, std, range, mean_d, Qd, vr, v, kur, Cs)) print('样本总数:',data1.shape[0])