zoukankan      html  css  js  c++  java
  • Python实现描述性统计

    该篇笔记由木东居士提供学习小组、资料

    描述性统计的概念很好理解,在日常工作中我们也经常会遇到需要使用描述性统计来表述的问题。以下,我们将使用Python实现一系列的描述性统计内容。

    有关python环境的安装就次略过。

    本次数据集由数据科学家联盟提供,https://pan.baidu.com/s/1lXAnyvSoti-U44MU2fubgw。

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    data = pd.read_excel(r'C:UsersuserDesktop描述性.xlsx',encoding='UTF-8')
    data = data.iloc[:20]
    集中趋势

    #
    计算平均值 # 法一 print("算术平均数:%.2f" %data.mean())
    算术平均数:4.40

    # 计算平均值
    # 法二:几何平均数
    
    data['data'] = data['data'].astype(int)
    s = 1
    for i in data['data']:
        s = i * s
    print("几何平均数:%.2f" %np.sqrt(s))
    
    
    几何平均数:351941.81
    # 众数
    # 法一:
    print("众数为:%d," %data.mode().iloc[0])
    
    众数为:4,
    
    #众数
    # 法二
    from scipy.stats import mode
    mode_num = mode(data)
    print("众数为:%d, 众数的个数为:%d,"%(mode_num[0][0], mode_num[1][0]))
    
    众数为:4, 众数的个数为:4,
    # 中位数
    # 法一:
    print("中位数:%d" %data.median())
    
    中位数:4
    
    # 中位数
    # 法二
    print("中位数:%d" %np.percentile(data,50))
    
    中位数:4
    
    
    # 中位数
    # 法三
    print("中位数:%d" %data.quantile(.50))
    
    中位数:4
    离散趋势
    #
    方差 # 法一: print("方差:%d" %data.var()) 方差:6 # 方差 # 法二: s = 0 for i in data['data']: s = (i - data.mean())**2 + s print("方差:%d" %(s/(len(data)-1))) 方差:6
    # 标准差
    # 法一
    print("标准差:%d" %data.std())
    
    标准差:2
    
    
    # 标准差
    # 法二:
    print("标准差:%d" %np.sqrt(s/(len(data)-1)))
    
    标准差:2
    # 极差
    data.max() - data.min()
    
    data    9
    dtype: int32
    # 平均绝对离差
    M = 0
    for i in data['data']:
        M += abs(i - data.mean())
        
    print(M/len(data))
    
    
    data    2.04
    dtype: float64
    # 上四分位数
    # 法一
    np.percentile(data,75)
    
    6.0
    
    # 上四分位数
    # 法二
    data.quantile(.75)
    
    data    6.0
    Name: 0.75, dtype: float64
    # 下四分位数
    # 法一
    data.quantile(.25)
    
    
    data    2.0
    Name: 0.25, dtype: float64
    
    # 下四分位数
    # 法二:
    np.percentile(data,25)
    
    
    2.0
    # 四分位差
    np.percentile(data,75) - np.percentile(data,25)
    
    4.0
    # 离散系数
    data.std()/data.mean()
    
    data    0.582476
    dtype: float64
    分布的形状
    #
    偏度 from scipy import stats stats.skew(data['data']) 0.4264951788847028
    # 峰度
    stats.kurtosis(data['data'])
    
    -0.5821005917159772
    # 概括性信息
    data.describe()
    
    
        data
    count    20.000000
    mean    4.400000
    std    2.562893
    min    1.000000
    25%    2.000000
    50%    4.000000
    75%    6.000000
    max    10.000000

    参考链接:https://blog.csdn.net/qq_43315928/article/details/102151709

  • 相关阅读:
    如何使用Linux命令实时查看最新的日志信息
    什么是缺陷(bug)
    APP 崩溃测试点小结
    软件测试之权限测试
    web安全测试之 xss攻击
    URL详谈
    随机生成名字或短句代码机
    JAVA环境变量配置
    Properties类与读取properties文件
    JAVA 打印九九乘法表
  • 原文地址:https://www.cnblogs.com/zym-yc/p/11868088.html
Copyright © 2011-2022 走看看