python花萼长度表_python描述性统计实践

1、加载相关库和数据集

使用的库主要有:pandas、numpy、sklearn、matplotlib、seaborn

使用的数据集:sklearn库中的鸢尾花数据集

import pandas as pd

import numpy as np

from sklearn.datasets import load_iris

import matplotlib.pyplot as plt

import seaborn as sns

import warnings

plt.rcParams["font.family"] = "SimHei" # 设置可以显示中文字体

plt.rcParams["axes.unicode_minus"] = False

warnings.filterwarnings("ignore") # 忽略警告信息

2、数据集数据概览

2.1 数据总体概览

iris = load_iris() # 加载鸢尾花数据集

print(type(iris))

print(iris)

In [1]: list(iris.keys())

Out[1]: ['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename']

2.2 使用主要信息构造DataFrame

使用 np.concatenate 拼接不同的数据信息

# 拼接data信息和target信息,用于构造DataFrame

data = np.concatenate([iris.data,iris.target.reshape(-1,1)],axis=1)

feature_names = iris.feature_names # 特征名列,包含花萼和花瓣的长度和宽度

feature_names.append("target") # 将"target"添加至特征名列表,作为拼接数据的列名

df = pd.DataFrame(data,columns=feature_names)

2.3 构造后的数据概览

df.info() # 展示df的概览信息

df.describe() # 展示df 数值类型字段的统计信息

df.sample(10) # 随机抽样10条数据

3、使用相关函数进行描述性统计

3.1 频率和频数分析

数据的频数与频率统计适用于类别变量

频数:数据中类别变量每个不同取值出现的次数

频率:每个类别变量的频数与总次数的比值,通常采用百分数进行表示。

frequency = df["target"].value_counts() # value_counts() 计算频数

percentage = frequency / len(df["target"]) # 计算频率

print(frequency)

print(percentage)

3.2 数据的集中趋势分析

均值:即平均值,为一组数据的总和除以数据的个数。

中位数:将一组数据升序排列,位于该组数据最中间位置的值(如果数据个数为偶数,则取中间两个数值的均值)。

众数:一组数据中出现次数最多的值。

分位数:通过n-1个分位将数据划分为n个区间,使得每个区间的数值个数相等(或近似相等),那么n为分位数的数量。

以鸢尾花的花萼长度为例,下同:

sepal_length = df["sepal length (cm)"]sepal_length.mean() # mean() 计算均值

sepal_length.median() # median() 计算中位数

sepal_length.mode().iloc[0] # mode() 计算众数

df.describe() # 统计信息中包含分位数

# numpy内置函数quantile计算分位值,q取值范围[0,1]np.quantile(sepal_length, q=[0.25, 0.5, 0.75])

# numpy内置函数percentile计算分位值,q取值范围[0,100]np.percentile(sepal_length, q=[25, 50, 75])

3.3 手动计算分位数

常用的分位数有四分位数与百分位数

分位值未必一定等同于数组中的某个元素

分位值是数组中的某个元素:

list1 = np.arange(9)

n = len(list1)

# 计算四分位的位置(索引)

q1_index = (n-1) * 0.25

q2_index = (n-1) * 0.5

q3_index = (n-1) * 0.75

q_index = np.array([q1_index, q2_index, q3_index])

q_index = q_index.astype(np.int32) # 将索引转成int类型

q = list1[q_index] # 根据索引获取分位值

分位值不是数组中的某个元素:

sepal_length = sorted(sepal_length) # 记得计算分位值之前要先给数据排序

sepal_length = np.array(sepal_length) # 转成数组

n = len(sepal_length)

q1_index = (n-1) * 0.25

q2_index = (n-1) * 0.5

q3_index = (n-1) * 0.75

q_index = np.array([q1_index, q2_index, q3_index])

left_index = np.floor(q_index).astype(np.int32) # np.floor() 向下取整

right_index = np.ceil(q_index).astype(np.int32) # np.ceil() 向上取整

weight,_ = np.modf(q_index) # np.modf() 获取小数部分作为权重

# 按照权重计算分位值,每个整数的权重为距离的反比。

q = sepal_length[left_index] * (1-weight) + sepal_length[right_index] * weight

3.4 数据的离散程度分析

极差:一组数据中,最大值与最小值之差

方差:每个样本值与全体样本值的平均数之差的平方值的平均数,体现一组数据中,每个元素与均值偏离的大小。

标准差:标准差是方差的开方

sepal_length.max() - sepal_length.min() # max() - min() 计算极差

sepal_length.var() # var() 计算方差

sepal_length.std() # std() 计算标准差

3.5 数据的分布形状分析

偏度:统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。(如果数据对称分布,如正态分布,则偏度为0;如果数据左偏分布,则偏度小于0;如果数据右偏分布,则偏度大于0)

峰度:描述总体中所有取值分布形态陡缓程度的统计量,可以连接为数据分布的高矮程度。(峰度的比较是相对于标准正太分布的,对于标准正太分布,峰度为0;如果峰度大于0,则密度图高于标准正太分布,此时方差较小;如果峰度小于0,则密度图低于标准正太分布,此时方差较大。)

# 标准正态分布的偏度和峰度,np.random.normal() 构造标准正态分布数据

standard_normal = pd.Series(np.random.normal(0, 1, size=10000))

standard_normal.skew()# skew() 计算偏度

standard_normal.kurt()# kurt() 计算峰度

# 鸢尾花花萼长度的偏度和峰度

sepal_length = df["sepal length (cm)"]sepal_length.skew()

sepal_length.kurt()

绘制标准正太分布、鸢尾花花萼宽度的密度图:

# 绘制核密度图

sns.kdeplot(standard_normal, shade=True, label="标准正太分布")

sns.kdeplot(df["sepal width (cm)"], shade=True, label="鸢尾花花萼宽度")

plt.legend()

作者:Minions2020

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android lottie字体json,Android 动画深入Lottie

image.png如果现在有需求,让这个小人做出拳击动作你应该如何做? 传统方法会写一大堆的路径值做路径动画,不好调试代码臃肿并且麻烦,那么有简单方法吗 有! SVG 和 Lottie 可以胜任 SVG编辑麻烦美工不太会弄,那么我们用Lottie 下面…

android 搜索工具栏,Android记事本在菜单栏添加搜索按钮方法

效果图这个app结构和我之前将记事本开发的博客基本一致,我这里直接讲一下怎样添加使用的开发软件为android studio首先在res目录下新建文件夹menu,添加目录布局文件main_menu之后在main_menu中添加如下代码xmlns:app"http://schemas.android.com/ap…

5分钟k线数据 存储_成功率极高的“分时K线战法”:15分钟K线战法+30分钟K线战法...

实战看盘最常用的就是日、周、月等K线图。这些图形对于我们分析个股走势的确帮助很大,然而遇到调整时,就显示了其宏观有余、微观不足的缺点。但假如我们用分时K线图进行微观的观察与分析,就可以找到一些个股在调整中的规律,比如15…

python redis模块常用_python-Redis模块常用的方法汇总

Redes模块常用的方法汇总一.创建建Redis对象1.直接使用import redisr redis.Redis(host127.0.0.1, port6379)2.连接池使用import redispool redis.ConnectionPool(host127.0.0.1, port6379)r redis.Redis(connection_poolpool)3.库的选择import redisr redis.Redis(db0) #第…

android camera 显示过程,Android Camera2 API显示已处理的预览图像

澄清问题后编辑;最初的答案在底部取决于您在哪里进行处理.如果您正在使用RenderScript,则可以将Surface从SurfaceView或TextureView连接到分配(使用setSurface),然后将处理后的输出写入该分配并使用Allocation.ioSend()将其发送出去. HDR Viewfinder demo使用这种方法.如果您正…

android布局的属性,android

第一类:属性值为true或falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignParentLeft 贴紧父元素的左…

python旋转排序数组_LeetCode(力扣)——Search in Rotated Sorted Array 搜索旋转排序数组 python实现...

题目描述:python实现Search in Rotated Sorted Array 搜索旋转排序数组中文:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中…

nfc卡模式与标准模式_张家口市环卫进入首都标准“京环模式”

“路上看不见垃圾,垃圾箱更卫生了,路边公共设施齐全了。”喜欢晨练的王先生最近格外喜欢在河边便道上散步,切身感受城市环境面貌改善带来的获得感。而这背后,除了环卫工作者的付出,也见证了张家口市城乡环卫一体化项目…

pyqt 取鼠标处文字_爱剪辑:炫彩的动态标题文字特效,这招让视频片头LOGO更酷炫...

爱剪辑学习委员会提醒您:道路千万条,学习第一条。教程不学会,制作两行泪。今天教大家制作炫彩的动态标题文字特效,3步即可快速学会,让你立马不再流泪。爱剪辑官网下载:http://www.aijianji.com/爱剪辑LOGO效…

android studio 搭建环境,Android studio搭建xposed环境

一、环境准备xposed:https://repo.xposed.info/module/de.robv.android.xposed.installerxposed-api:https://forum.xda-developers.com/xposed/xposed-api-changelog-developer-news-t2714067二、环境搭建Android studio选择->Empty Actvity将api.ja…

强化学习原理与python实现原理pdf_纯Python实现!Facebook发布PyTorch分布式强化学习库...

图灵TOPIA来源:Facebook编译:刘静图灵联邦编辑部出品Facebook于近日发布了PyTorch中用于强化学习(RL)研究的平台:TorchBeast。TorchBeast实现了流行的IMPALA算法的一个版本,用于RL代理的快速、异步、并行训练。另外,To…

鸿蒙开发还可以用安卓,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪

在华为开发者大会上,华为消费业务CEO 余承东,正式发布鸿蒙OS2.0,并宣布华为鸿蒙OS将全面启用全场景生态,并将于2020年12月发布手机版。余承东还表示,明年,华为的智能手机将全面升级,以支持鸿蒙操…

深入浅出强化学习_直播 | 深入浅出理解 A3C 强化学习

强化学习是一种比较传统的人工智能手段,在近年来随着深度学习的发展,强化学习和深度学习逐渐结合在了一起。这种结合使得很多原来无法想象的工作有了可能,最令我们瞩目的莫过于 AlphaGo 战胜李世石,以及 OpenAI 团队的机器人可以在…

鸿蒙os2.0公测机型,鸿蒙OS2.0第二期第三期公测机型陆续公布 麒麟980和麒麟820将登场...

继官方透露鸿蒙OS2.0将开始大规模推送之后,在第一批为华为Mate X2,Mate40系列等系列机型推送后,近期官方再次开启了鸿蒙系统(HarmonyOS 20开发者Beta)的第二期公测,在原有机型的基础上再次增加了nova系列的6款机型,根据…

python 天气雷达_python结合API实现即时天气信息

python结合API实现即时天气信息import urllib.requestimport urllib.parseimport json"""利用“最美天气”抓取即时天气情况http://www.zuimeitianqi.com/"""class ZuiMei():def __init__(self):self.url http://www.zuimeitianqi.com/zuimei/q…

qq接入和分享android,Android社交登录授权、分享SDK,支持微信、微博和QQ

社交登录授权,分享SDK支持微信、微博、QQ登录授权微信好友、微信朋友圈、微博、QQ好友、QQ空间分享Gradlecompile com.elbbbird.android:socialsdk:0.2.0aar使用指南Debug模式SocialSDK.setDebugMode(true); //默认false平台SSO授权功能ISocialOauthCallback授权回调…

如何截取_【实用技巧】如何截取网页长图

最近需要截取一个网页长图,搜了下发现 Chrome 浏览器实现起来比较简单,顺便记录分享下。准备:Chrome 浏览器【1】用 Chrome 浏览器打开网页【2】按下 F12 进入开发者工具页面【3】点击工具栏中“切换设备”选项(图标看着像手机/Pad)【4】左侧…

三星升级android9,没买的不必看!三星手机各机升级Android 9.0 时间表

原标题:没买的不必看!三星手机各机升级Android 9.0 时间表在此之前Samsung 在Samsung 的会员应用程序中给我们公布了旗下设备在什么时间节点升级至Android 9.0系统的路线图。用户更新至最新的Android 9.0之后,用户将会得到全新的One UI&#…

js微信监听返回_微信小程序(2)- 框架结构amp;运行环境

一、小程序框架结构小程序框架分场景获取、逻辑层和视图层场景获取:场景值是用来描述用户进入小程序的路径,可以在小程序的生命周期onLaunch 或 onShow 里获取。也可以通过wx.getLaunchOptionsSync来获取场景值。详细的场景列表可以在下面文档查看。微信…

html中怎样播放本地视频教程,【Axure9基础教程】内联框架如何引入本地音频 视频 HTML PDF等本地文件...

在【在讲解如何插入本地文件之前需要先讲两个概念,相对路径和绝对路径,了解了这两个概览后,才能顺利的插入本地文件并识别成功绝对路径和相对路径是什么?相对路径:相对路径就是相对于当前文件的路径,以引用文件之网页…