NumPy 均匀分布模拟及 Seaborn 可视化教程
均匀分布
简介
均匀分布是一种连续概率分布,表示在指定范围内的所有事件具有相等的发生概率。它常用于模拟随机事件,例如生成随机数或选择随机样本。
参数
均匀分布用两个参数来定义:
a:下限,表示分布的最小值。
b:上限,表示分布的最大值。
公式
均匀分布的概率密度函数 (PDF) 为:
f(x) = 1 / (b - a) for a <= x <= b
其中:
f(x):表示在区间 [a, b] 内 x 点的概率密度。
a:分布的下限。
b:分布的上限。
生成均匀分布数据
NumPy 提供了 random.uniform() 函数来生成服从均匀分布的随机数。该函数接受以下参数:
low:分布的下限,默认为 0。
high:分布的上限,默认为 1。
size:输出数组的形状。
示例:生成 10 个介于 0 到 1 之间的均匀分布随机数:
import numpy as np
data = np.random.uniform(low=0, high=1, size=10)
print(data)
可视化均匀分布
Seaborn 库提供了便捷的函数来可视化分布,包括均匀分布。
示例:绘制 1000 个介于 0 到 1 之间的均匀分布随机数的分布图:
import seaborn as sns
import numpy as np
data = np.random.uniform(low=0, high=1, size=1000)
sns.distplot(data)
plt.show()
练习
- 生成 500 个介于 -10 到 10 之间的均匀分布随机数,并绘制它们的分布图。
- 比较不同范围下均匀分布形状的变化。
- 利用均匀分布来模拟 100 次抛硬币的结果,并计算正面朝上的次数的概率。
解决方案
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
# 1. 生成随机数并绘制分布图
data = np.random.uniform(low=-10, high=10, size=500)
sns.distplot(data)
plt.show()
# 2. 比较不同范围下分布形状的变化
low_values = [-10, 0, 10]
high_values = [10, 20, 30]
for low, high in zip(low_values, high_values):
data = np.random.uniform(low=low, high=high, size=1000)
sns.distplot(data, label=f"[{low},{high}]")
plt.legend()
plt.show()
# 3. 模拟抛硬币结果并计算正面朝上的次数概率
heads = np.random.uniform(low=0, high=1, size=100) > 0.5
print("正面朝上的次数:", heads.sum())
print("正面朝上的概率:", heads.mean())
逻辑分布
简介
逻辑分布,也称为Logistic分布,是一种连续概率分布,常用于建模具有 S 形增长特征的现象,例如生物种群增长、疫情发展等。它在机器学习中也具有广泛的应用,例如逻辑回归、神经网络等。
参数
逻辑分布用两个参数来定义:
loc:位置参数,表示分布的中心位置。默认为 0。
scale:尺度参数,控制分布的平坦程度。较大的尺度参数使分布更加平坦,两侧尾部更加分散。默认为 1。
公式
逻辑分布的概率密度函数 (PDF) 为:
f(x) = (scale / (π (1 + (x - loc) / scale)^2)) for all x
其中:
f(x):表示在所有实数 x 点的概率密度。
loc:分布的位置参数。
scale:分布的尺度参数。
生成逻辑分布数据
NumPy 提供了 random.logistic() 函数来生成服从逻辑分布的随机数。该函数接受以下参数:
loc:位置参数,默认为 0。
scale:尺度参数,默认为
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
NumPy 均匀分布模拟及 Seaborn 可视化教程的更多相关文章
- 国外大神制作的一个很棒的matplotlib 可视化教程
国外大神制作的一个很棒的matplotlib 可视化教程 参考:https://www.machinelearningplus.com/plots/top-50-matplotlib-visualiz ...
- Darknet卷基层浅层特征可视化教程
目录 Darknet浅层可视化教程 说明 处理步骤 使用python可视化txt文件 Darknet浅层可视化教程 说明 针对YOLO官方提供的c语言版的darknet进行了修改,添加了一些函数,进行 ...
- Python - Seaborn可视化:图形个性化设置的几个小技巧
1 概述 在可视化过程中,经常会对默认的制图效果不满意,希望能个性化进行各种设置. 本文通过一个简单的示例,来介绍seaborn可视化过程中的个性化设置.包括常用的设置,如: 设置图表显示颜色 设置图 ...
- PJ可能会考的模拟与枚举-自学教程
PJ可能会考的模拟与枚举-自学教程 文/Pleiades_Antares 之前学校里看一个小可爱复习的时候偷偷听来着XD 简单记了一下重点吧,希望能对看官您有所帮助XD 以下⬇️是几个复习时讲过的题, ...
- seaborn可视化
文章来自https://blog.csdn.net/qq_33120943/article/details/76569756 详细教程可以查看官方额示例:http://seaborn.pydata.o ...
- seaborn可视化特征的相关性
import seaborn as sn sn.heatmap(trainX.corr(),vmax=1,square=True)
- VM虚拟机网卡LAN区段模拟内网使用教程
目录 1. 测试环境 2. 设置LAN区段并测试 2.1. 添加LAN区段 2.2. 在虚拟机中设置静态IP地址 2.3. 测试同一LAN区段的主机是否可以联通 2.4 ...
- 使用Fiddler模拟弱网测试教程
一.下载抓包工具Fiddler 官网下载链接:https://www.telerik.com/fiddler 二.设置Fiddler Tools>>Connections 然后修改监听端 ...
- echarts 移动端地图数据可视化教程
如上效果图: 以下未代码: <!doctype html> <html lang="en"> <head> <meta charset ...
- Git可视化教程——Git Gui的使用
参考链接:https://blog.csdn.net/qq_34842671/article/details/70916587
随机推荐
- ES6---new Promise()使用方法
2015年6月份, ES2015正式发布(也就是ES6,ES6是它的乳名),其中Promise被列为正式规范.作为ES6中最重要的特性之一,我们有必要掌握并理解透彻.本文将由浅到深,讲解Promise ...
- kolla-ansible部署OpenStack Train版技术方案
简单架构示意 项目目标 1. 实现容器化部署docker+ Ansible+openstack-tarin 2. 使用keeplived监控nova服务实现在单台服务器宕机的情况下能迅速切断连接减轻平 ...
- 102万行代码,1270 个问题,Flink 新版发布了什么?
阿里妹导读: Apache Flink 是公认的新一代开源大数据计算引擎,可以支持流处理.批处理和机器学习等多种计算形态,也是Apache 软件基金会和 GitHub 社区最为活跃的项目之一. 201 ...
- MaxCompute管家详解--管家助力,轻松玩转MaxCompute
精彩视频回顾请点击:MaxCompute管家详解以下是直播内容精华整理,主要包括以下四个方面:1.背景速览:2.功能介绍:3.案例讲解:4.新功能预告. 一.背景速览 MaxCompute(原ODPS ...
- 从原理到操作,让你在 Apache APISIX 中代理 Dubbo3 服务更便捷
简介: 本文为大家介绍了如何借助 Apache APISIX 实现 Dubbo Service 的代理,通过引入 dubbo-proxy 插件便可为 Dubbo 框架的后端系统构建更简单更高效的流量链 ...
- dotnet C# 使用 Vortice 支持 Direct2D1 离屏渲染
本文告诉大家如何使用 Vortice 进行 D2D 的离屏渲染功能,本文将在一个纯控制台无窗口的应用下,使用 Direct2D1 进行离屏绘制,将绘制结果保存为本地图片文件 本文属于使用 Vortic ...
- three.js实现相机碰撞,相机不穿墙壁、物体
大家好,本文实现了相机碰撞检测,使相机不穿墙壁.物体,并给出了思路和代码,感谢大家~ 关键词:数字孪生.three.js.Web3D.WebGL.相机碰撞.游戏相机 我正在承接Web3D数字孪生项目, ...
- Docker的Portainer认识、安装、使用
一.认识 docker的图形化界面 Portainer 是一个轻量级的容器管理界面,可以让用户更轻松地管理 Docker 容器.镜像.网络和数据卷等.Portainer 提供了一个用户友好的 Web ...
- Blazor流程编排的艺术:深入Z.Blazor.Diagrams库的使用与实践
为现代网页应用开发提供动力的其中一个重要方面就是前端框架的强大功能与灵活性.而在.NET生态中,Blazor以其独特的工作方式和优势逐渐获得了开发者们的青睐.今天,在这篇文章中,我将带你深入探索一个基 ...
- docker、docker-compose 常用命令
1.docker 常用命令 创建容器:docker create 启动容器:docker start [id] 停止容器:docker stop [id] 停止全部运行的容器:docker stop ...