NumPy 均匀分布模拟及 Seaborn 可视化教程

numpy,seaborn · 浏览次数 : 0

小编点评

**均匀分布** 均匀分布是一种连续概率分布,表示在指定范围内的所有事件具有相等的发生概率。 **参数** * **a**:下限,表示分布的最小值。 * **b**:上限,表示分布的最大值。 **概率密度函数 (PDF)** f(x) = 1 / (b - a) for a <= x <= b **生成均匀分布数据** NumPy 提供了 random.uniform() 函数来生成服从均匀分布的随机数。该函数接受以下参数: * **low**:分布的下限,默认为 0。 * **high**:分布的上限,默认为 1。 * **size**:输出数组的形状。 **示例** ```python import numpy as npdata = np.random.uniform(low=0, high=1, size=10) print(data) ``` **可视化均匀分布** Seaborn 库提供了便捷的函数来可视化分布,包括均匀分布。示例如下: ```python import seaborn as snsimport numpy as npdata = np.random.uniform(low=0, high=1, size=1000) sns.distplot(data) plt.show() ``` **练习** * 生成 500 个介于 -10 到 10 之间的均匀分布随机数。 * 绘制它们的分布图。 * 比较不同范围下均匀分布形状的变化。 **逻辑分布** 逻辑分布是一种连续概率分布,常用于建模具有 S 形增长特征的现象。参数逻辑分布用两个参数来定义: * **loc**:位置参数,表示分布的中心位置。 * **scale**:尺度参数,控制分布的平坦程度。

正文

均匀分布

简介

均匀分布是一种连续概率分布,表示在指定范围内的所有事件具有相等的发生概率。它常用于模拟随机事件,例如生成随机数或选择随机样本。

参数

均匀分布用两个参数来定义:

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()

练习

  1. 生成 500 个介于 -10 到 10 之间的均匀分布随机数,并绘制它们的分布图。
  2. 比较不同范围下均匀分布形状的变化。
  3. 利用均匀分布来模拟 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 可视化教程相似的内容:

NumPy 均匀分布模拟及 Seaborn 可视化教程

本文介绍了均匀分布和逻辑分布。均匀分布是连续概率分布,所有事件在指定范围内有相等概率发生,常用于随机数生成。其概率密度函数为 `f(x) = 1/(b-a)`,其中 a 和 b 分别为下限和上限。NumPy 的 `random.uniform()` 可生成均匀分布的随机数。Seaborn 可用于可视...

NumPy 差分、最小公倍数、最大公约数、三角函数详解

NumPy 助你处理数学问题:计算序列的差分用`np.diff()`,示例返回`[5, 10, -20]`;找最小公倍数(LCM)用`np.lcm()`,数组示例返回`18`;最大公约数(GCD)用`np.gcd.reduce()`,数组示例返回`4`;三角函数如`np.sin()`,`np.deg...

NumPy 舍入小数、对数、求和和乘积运算详解

NumPy 提供五种舍入小数的方法:`trunc()`, `fix()`, `around()`, `floor()`, `ceil()`。此外,它还支持对数运算,如 `log2()`, `log10()`, `log()`,以及自定义底数的对数。NumPy 的 `sum()` 和 `prod()`...

NumPy 简单算术:加减乘除及其他运算

NumPy 中的简单算术运算可以通过 `add`, `subtract`, `multiply`, `divide`, `power`, `mod`, `remainder` 等函数实现,这些函数支持条件运算,并接受 `where` 参数。例如,`add()` 实现加法,`subtract()` 表...

机器学习算法(一):1. numpy从零实现线性回归

系列文章目录 机器学习算法(一):1. numpy从零实现线性回归 机器学习算法(一):2. 线性回归之多项式回归(特征选取) @目录系列文章目录前言一、理论介绍二、代码实现1、导入库2、准备数据集3、定义预测函数(predict)4 代价(损失)函数5 计算参数梯度6 批量梯度下降7 训练8 可视

数据分析---numpy模块

前戏 NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。 快捷键的使用: 添加cell:a或者b 删除:x 修改cell的模式: m:修改成markdown模式

NumPy 数组排序、过滤与随机数生成详解

本文介绍了NumPy中的数组排序和过滤功能。`np.sort()`函数用于对数组进行升序排序,对二维数组则按行排序。示例展示了如何对一维和二维数组排序。此外,还讲解了使用布尔索引来过滤数组,以及直接在条件中操作数组以创建过滤后的数组。最后,介绍了NumPy的随机数生成,包括整数、浮点数及特定分布的随...

NumPy 分割与搜索数组详解

NumPy 分割数组 NumPy 提供了 np.array_split() 函数来分割数组,将一个数组拆分成多个较小的子数组。 基本用法 语法: np.array_split(array, indices_or_sections, axis=None) array: 要分割的 NumPy 数组。 i

NumPy 数组迭代与合并详解

NumPy 数组迭代 NumPy 数组迭代是访问和处理数组元素的重要方法。它允许您逐个或成组地遍历数组元素。 基本迭代 我们可以使用 Python 的基本 for 循环来迭代 NumPy 数组。 一维数组迭代: import numpy as np arr = np.array([1, 2, 3,

NumPy 数组复制与视图详解

NumPy 数组的复制与视图 NumPy 数组的复制和视图是两种不同的方式来创建新数组,它们之间存在着重要的区别。 复制 复制 会创建一个包含原始数组相同元素的新数组,但这两个数组拥有独立的内存空间。这意味着对复制进行的任何更改都不会影响原始数组,反之亦然。 创建副本可以使用以下方法: arr.co