python数据分析 基础统计学的学习(2)

  这一篇介绍一些描述性统计的基本情况。

  数据处理是描述性统计的第一步,对于搜集的数据,首先应先排序,将其按照一定的顺序整理。操作完成后要进行分组,以被研究事物的本质属性进行分组,分组的标准要明确,不能出现数据的交叉和重叠。

一、次数分布概况

次数分布一般是初步整理好一组数据后,将同一组或同一类观测值的原始数据整理成频次分布表,表现数据在各个分组区间内的散布情况。

  举例来说,搜集到一个班级60人的考试成绩,这是原始数据。

  首先介绍简单次数分布,按照及格、良好、优秀三档这样的描述性文字分,把描述性文字转化为数学区间就可以很轻松的分出来了。

  进一步可以分为分组次数分布表,将数据量分为若干分组区间,再将数据按数值大小划归相应的组别内,分别统计各组别内的数据个数。进行这一过程的步骤是:

(1)求全距,range,最大值与最小值做差。

(2)决定组距与组数。组数与组距的确定没有明确的先后关系,根据经验来进行。但是可以先确定组数,比如如果成绩呈正态分布的形式,就可以利用经验公式确定组数K=1.87*(N-1)^(2/3),这里就直接写python表达式了。组数的值是一个近似值,取整。得到组数后就能用全距除以组数得到组距。按照经验我们可以知道一个班级的考试成绩就是近似正态分布,所以可以采取这个近似表达式。

(3)列出分组区间,把每个区间的下限和上限都求出来,然后分别列出。

(4)计算每个组内的次数并列

再介绍累加次数分布。 一般的分组次数分布只标出了各组区间的数据次数,想知道某个数值以下的总次数就要用到累加次数。把各组的次数从上到下或者从下到上进行累加,最后一组的次数累加等于总次数。

其他统计图表暂时不说,等到我学会matplotlib库再去实现。

二、集中量数介绍

集中量数、差异量数是分别来描述统计学上次数分布的集中趋势和离中去世这两个基本数据特点的量度。集中量数包括平均数、中位数、众数等多种量度。

算术平均数是整个数据的支点,就像杠杆一样使左右两边的数据刚好处于平衡的位点。平均数的特点是,样本每个变量和平均数之差的总和为0,样本中每个数加或乘一个常数,平均数也相应加或乘一个常数。一般情况下由于各种偏差的我们不能得到总体的属性的真值,而算术平均数在大部分情况下是总体真值的最佳的估计值。

算术平均数的优缺点


优点


缺点


反应灵敏,对任何一个数的变化都能有所反应


容易受极端值影响,对于有偏度的样本平均值不能恰当描述分布的真实情况,所以有切尾平均值,去掉p个最低最高值再计算


计算严密,任何人拿到相同的数据算出来的都是相同结果。


若出现模糊结果则无法计算均值,所以python中要先处理数据去除空值


计算简单,这是针对后面的几何平均、调和平均说的


适合于进一步代数运算,计量推导回归公式的时候均值的很多性质都会用到

  应用算术平均数有以下几个原则

  同质性原则:一定要保证数据是同类的同性质的数据。讲个笑话,马云和我一起去吃饭,我们的平均收入上百亿,这种平均是没意义的,因为我作为一个穷逼收入都是靠自己出卖劳动力,跟我的出卖的时间成正比,这属于无产阶级收入,马云的收入是靠他的投资、靠他的钱生钱,这是大资产阶级的收入,我和马云收入的来源不一样所以性质完全不一样,所以这种平均就没意义。所以每年全国居民平均收入水平前几年就到了两万多,但扶贫任务还是一直做到现在,侧面反应不考虑同质性的统计数据是有很大问题的。

  保证平均数和个体数值相结合参考的原则,还是跟上面一样,看到我国人均收入过了两万,但是也要看到有人年均五百个亿,有人年均吃低保。平均数反映了我国经济形式向好的趋势,但是个体间的差异不看到的话就不能看到贫富差距加大的事实。

  集中量数和差异量数相结合,上面说的是看到各个样本个体间的差异,用方差和标准差来作为这种差异的度量,差异越大,平均数越没有代表性,差异越小,平均数代表性越强。

  接着介绍其他平均数。

加权平均数一般用于所测数据单位权重不一致的情形。

几何平均数用于数据有偏度时,算术平均数不能很好地表示集中趋势的场合。几何平均数的公式是,还可以用对数公式作为替代。当组间变异较大时,几乎是按照一定比例关系增长的时候,用几何平均数就可以计算比率。

调和平均数先将各个数据取倒数平均,再取倒数的过程。调和平均数一般用于研究学习速度方面的问题,一个人前十五分钟学习三十个单词,后十分钟学习二十个单词,问其每分钟学多少个单词。用调和平均来算每分钟的情形。

众数和中位数就不再过多讲解。

  下面介绍一下分组次数计算的python实现,前面复杂的for、if循环是我自己想的,后面三行代码处理是小师弟教我做放缩处理之后得到的。

import numpy as np
import pandas as pd

score_list=[76,77.5,82,90.5,81,85.5,71,80.5,92.5,77,88,81,76.5,67,83,84,84,62,79,72,89,78,78,80,78.5,76.5,75,79.5,86,81.5,75,84,90,80,86,84.5,68.5,71,86,81.5,79.5,80.5,73,93,83,72,68,71,87,78,
            66,83,87,82.5,79.5,80,82,81,86.5,83.5,
            71.5,83,91,96,75.5,89,87.5,69,74,70,
            77.5,75,79,79,80.5,74.5,77,82.5,72.5,73.5,
            73.5,76,88.5,85,89.5,78.5,76,74,98,73,
            94,79,80,75.5,83.5,82,65,74.5,80,70.5,]

score_data=pd.Series(score_list)
#print(min(score_data),max(score_data))

bins=[min(score_data)-2,70,80,90,max(score_data)+2]
labels_=[‘60-70‘,‘70-80‘,‘80-90‘,‘90-100‘]
print(pd.cut(score_data,bins,right=True,labels=labels_))  #cut函数可以将series中每个数据贴上分组的标签
‘‘‘a1=[]
a2=[]
a3=[]
a4=[]
for i in score_data:
    if 60<=i<70:
        a1.append(i)

    elif 70<=i<80:
        a2.append(i)

    elif 80<=i<90:
        a3.append(i)

    elif 90<=i<100:
        a4.append(i)

#print(a1,a2,a3,a4)

print(pd.Series([len(a1),len(a2),len(a3),len(a4)],index=labels_))‘‘‘

score_data=score_data/10 #放缩
score_data=np.floor(score_data) #取整,将同一区间的数据只保留整数部分相同的值
print(score_data.value_counts()) #分类函数,将相同的值的个数分离出来

原文地址:https://www.cnblogs.com/zdl4/p/12530791.html

时间: 2024-10-09 07:01:32

python数据分析 基础统计学的学习(2)的相关文章

Numpy学习:《Python数据分析基础教程NumPy学习指南第2版》中文PDF+英文PDF+代码

NumPy是一个优秀的科学计算库,提供了很多实用的数学函数.强大的多维数组对象和优异的计算性能,不仅可以取代Matlab和Mathematica的许多功能,而且业已成为Python科学计算生态系统的重要组成部分.但与这些商业产品不同,它是免费的开源软件. 推荐学习<Python数据分析基础教程NumPy学习指南第2版>,通过书中丰富的示例,学会Matplotlib绘图,并结合使用其他Python科学计算库(如SciPy和Scikits),让工作更有成效,让代码更加简洁而高效. 学习参考: &l

分享《Python数据分析基础教程:NumPy学习指南(第2版)》高清中文PDF+英文PDF+源代码

下载:https://pan.baidu.com/s/1YSD97Gd3gmmPmNkvuG0eew更多资料分享:http://blog.51cto.com/3215120 <Python数据分析基础教程:NumPy学习指南(第2版)>高清中文PDF+高清英文PDF+源代码 高清中文版PDF,249页,带目录和书签,文字能够复制粘贴:高清英文版PDF,310页,带目录和书签,文字能够复制粘贴:中英文两版可以对比学习.配套源代码:经典书籍,讲解详细:其中高清中文版如图: 原文地址:http://

Python数据分析基础与实践 Python数据分析实践课程 Python视频教程

课程简介: Python数据分析基础与实践 Python数据分析实践课程 Python视频教程----------------------课程目录------------------------------├<章节1Python概况>├<章节2Python安装>├<章节3数据准备>├<章节4数据处理>├<章节5数据可视化>├<章节6网页数据抓取>├<章节7连接MySQL>├<章节8数据分析> 下载地址:百度网盘

Python数据分析——基础02

Python数据分析--基础02 元组(tuple) 元组是一个固定长度,不可改变的序列对象. 创建元组 用逗号分隔一列值 tup = 1,2,3 # (1, 2, 3) 用圆括号 tup = (1,2,3), (4,5,6,7) # ((1, 2, 3), (4, 5, 6, 7)) 使用tuple()可以将任意序列或迭代器转换成元组 tuple([1,2,3,4]) # (1, 2, 3, 4) tuple('string') # ('s', 't', 'r', 'i', 'n', 'g')

Python 数据分析与挖掘的学习路径

0.前言 很多人反映在学习了Python基础之后无所适从,不知道下一步往哪走.作为较早期的跨界者(土木狗)深有体会.本文将结合上图,为后来者指明方向,可作为参考.在此强调:如果打算依靠Python逃离现有的工作(如土木施工),那就要认真想想自己打算做哪一方面的工作,互联网营销.前端.运维.爬虫.数据分析.数据挖掘.Web开发?强烈建议:直接上拉钩或者Boss直聘,针对性学习更为稳妥.如果打算业余玩玩,那跟着我们一起业余吧,嚯嚯~ .在入门学习大数据的过程当中有遇见学习,行业,缺乏系统学习路线,系

Python数据分析入门与实践 学习 资源??

pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有表现力的数据结构,目的是使“关系”或“标记”数据的工作既简单又直观.它旨在成为在Python中进行实际数据分析的高级构建块. 入门介绍 pandas适合于许多不同类型的数据,包括: 具有异构类型列的表格数据,例如SQL表格或Excel数据 有序和无序(不一定是固定频率)时间序列数据. 具有行列标签的任意矩阵数据(

python 数据分析基础

安装Python基础的几个数据分析库: pip install pandas pip install numpy pip install scipy pip install scikit-surprise 值得注意的是,在安装scikit-surprise库的时候需要提前安装Microsoft Visual C++ 14.0 百度网盘链接在下面: 链接: https://pan.baidu.com/s/1grxdx_7TH40fiLfeV1McHg 提取码: md8b 原文地址:https://

Python数据分析基础——读写CSV文件2

2.2筛选特定的行: 行中的值满足某个条件 行中的值属于某个集合 行中的值匹配于某个模式(即:正则表达式) 2.2.1:行中的值满足于某个条件: 基础python版: 1 #!/usr/bin/env python3 2 import csv 3 import sys 4 5 input_file = sys.argv[1] 6 output_file = sys.argv[2] 7 8 with open(input_file, 'r', newline = '') as csv_in_fil

【Python数据分析基础】: 异常值检测和处理

在机器学习中,异常检测和处理是一个比较小的分支,或者说,是机器学习的一个副产物,因为在一般的预测问题中,模型通常是对整体样本数据结构的一种表达方式,这种表达方式通常抓住的是整体样本一般性的性质,而那些在这些性质上表现完全与整体样本不一致的点,我们就称其为异常点,通常异常点在预测问题中是不受开发者欢迎的,因为预测问题通产关注的是整体样本的性质,而异常点的生成机制与整体样本完全不一致,如果算法对异常点敏感,那么生成的模型并不能对整体样本有一个较好的表达,从而预测也会不准确.从另一方面来说,异常点在某