首页 > Python资料 博客日记
NumPy 随机数据分布与 Seaborn 可视化详解
2024-05-21 22:30:02Python资料围观143次
随机数据分布
什么是数据分布?
数据分布是指数据集中所有可能值出现的频率,并用概率来表示。它描述了数据取值的可能性。
在统计学和数据科学中,数据分布是分析数据的重要基础。
NumPy 中的随机分布
NumPy 的 random
模块提供了多种方法来生成服从不同分布的随机数。
生成离散分布随机数
choice(a, p, size)
:从数组 a
中随机选择元素,并根据概率 p
进行选择。
a
:源数组,包含所有可能值。
p
:每个值的概率数组,总和必须为 1。
size
:输出数组的形状。
示例:生成 100 个随机数,其中 3 出现的概率为 0.2,5 出现的概率为 0.4,7 出现的概率为 0.3,9 出现的概率为 0.1:
import numpy as np
x = np.random.choice([3, 5, 7, 9], p=[0.2, 0.4, 0.3, 0.1], size=100)
print(x)
生成连续分布随机数
NumPy 提供了多种方法来生成服从不同连续分布的随机数,例如正态分布、均匀分布、指数分布等。
randn(size)
:生成服从标准正态分布的随机数。
rand(size)
:生成服从均匀分布的随机数。
beta(a, b, size)
:生成服从 Beta 分布的随机数。
gamma(shape, scale, size)
:生成服从 Gamma 分布的随机数。
poisson(lam, size)
:生成服从泊松分布的随机整数。
示例:生成 10 个服从标准正态分布的随机数:
import numpy as np
x = np.random.randn(10)
print(x)
随机排列
洗牌数组
shuffle(arr)
:对数组 arr
进行随机洗牌,修改原始数组。
示例:随机洗牌数组 [1, 2, 3, 4, 5]
:
import numpy as np
from numpy.random import shuffle
arr = np.array([1, 2, 3, 4, 5])
shuffle(arr)
print(arr)
生成数组的随机排列
permutation(arr)
:生成数组 arr
元素的随机排列,不修改原始数组。
示例:生成数组 [1, 2, 3, 4, 5]
的随机排列:
import numpy as np
from numpy.random import permutation
arr = np.array([1, 2, 3, 4, 5])
x = permutation(arr)
print(x)
练习
- 使用
choice
方法生成 200 个随机数,其中 1 出现的概率为 0.1,2 出现的概率为 0.2,3 出现的概率为 0.7。 - 生成 10 个服从指数分布的随机数。
- 对数组
[10, 20, 30, 40, 50]
进行随机洗牌。 - 生成数组
[6, 7, 8, 9, 10]
元素的随机排列。
解决方案
import numpy as np
from numpy.random import choice, permutation, expon
# 1. 使用 choice 方法生成随机数
random_numbers = choice([1, 2, 3], p=[0.1, 0.2, 0.7], size=200)
print(random_numbers)
# 2. 生成服从指数分布的随机数
exponential_randoms = expon(scale=1, size=10)
print(exponential_randoms)
# 3. 对数组进行随机洗牌
arr = np.array([10, 20, 30, 40, 50])
shuffle(arr)
print(arr)
# 4. 生成数组的随机排列
random_permutation = permutation([6, 7, 8, 9, 10])
print(random_permutation)
使用 Seaborn 可视化分布
简介
Seaborn 是一个基于 Matplotlib 的 Python 数据可视化库,用于创建统计图表。它提供了一系列高级绘图函数,可以轻松创建美观且信息丰富的统计图形。
安装 Seaborn
如果您已经安装了 Python 和 pip,可以使用以下命令安装 Seaborn:
pip install seaborn
如果您使用的是 Jupyter Notebook,可以使用以下命令安装 Seaborn:
!pip install seaborn
绘制分布图
分布图是一种可视化数据分布的图表。它显示了数据集中每个值的出现频率。
在 Seaborn 中,可以使用 sns.distplot()
函数绘制分布图。该函数接受以下参数:
data
:要绘制分布的数据。可以是数组、列表或 Pandas 数据框。
hist
:如果为 True
(默认),则绘制直方图;如果为 False
,则只绘制密度曲线。
kde
:如果为 True
(默认),则使用核密度估计 (KDE) 来估计数据的分布;如果为 False
,则使用直方图。
bins
:用于创建直方图的直方图数量。
norm
:用于规范分布的类型。例如,norm='kde'
将使用 KDE 来规范分布。
示例:绘制正态分布
以下示例演示如何使用 Seaborn 绘制正态分布:
import seaborn as sns
import numpy as np
# 生成随机数据
data = np.random.randn(1000)
# 绘制分布图
sns.distplot(data)
plt.show()
该代码将生成 1000 个服从标准正态分布的随机数,并使用 Seaborn 绘制它们的分布图。
示例:绘制自定义分布
以下示例演示如何绘制自定义分布:
import seaborn as sns
import numpy as np
# 生成自定义数据
data = [1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 9]
# 绘制分布图
sns.distplot(data, hist=False, kde=False)
plt.show()
该代码将生成一个包含重复值的自定义数据数组,并使用 Seaborn 绘制它们的分布图,不显示直方图或密度曲线。
练习
- 生成 500 个服从均匀分布的随机数,并绘制它们的分布图。
- 生成 1000 个服从指数分布的随机数,并绘制它们的分布图。
- 从以下数据中绘制分布图:
data = [23, 37, 43, 29, 31, 32, 36, 27, 31, 33, 34, 25, 27, 28, 42, 38, 27, 27, 33, 31, 26, 29, 31, 35, 33, 30, 30, 32, 36, 28, 31, 33, 38, 29, 31, 31, 34, 36, 26, 25, 26, 34, 37, 28, 36, 31, 29, 31, 27, 28, 32, 37, 30, 33, 33, 27, 31, 32, 32, 36, 25, 32, 35, 37, 37, 30, 31, 34, 33, 29, 32, 31, 36, 26, 29, 31, 37, 28, 28, 37, 31, 32, 36, 33, 27, 31, 32, 33, 32, 32, 30, 27, 36, 38, 35, 26, 32, 37, 31, 30, 33, 30, 27,
## 最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:`Let us Coding`,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Windows上安装 Python 环境并配置环境变量 (超详细教程)