网站首页 > 技术文章 正文
1. 首先,我们需要导入必要的 Python 库,如 `numpy` 和 `matplotlib.pyplot` 以及 `scipy.stats` 等。
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import *
2. 以正态分布为例,我们可以使用 `norm` 函数来生成正态分布的数据。
# 生成正态分布数据
mu = 0 # 均值
sigma = 1 # 标准差
x = np.linspace(norm.ppf(0.01, mu, sigma), norm.ppf(0.99, mu, sigma), 100)
pdf = norm.pdf(x, mu, sigma)
3. 然后,我们可以绘制出正态分布的概率密度函数图像。
# 绘制正态分布图像
plt.plot(x, pdf, 'r-', lw=5, alpha=0.6, label='norm pdf')
plt.title('Normal Distribution')
plt.xlabel('x')
plt.ylabel('Probability Density Function')
plt.legend()
plt.show()
4. 接下来,我们看看二项分布。假设进行多次独立的伯努利试验,每次试验成功的概率为 $p$,试验次数为 $n$,我们可以用 `binom` 函数来处理。
# 二项分布示例
n = 10 # 试验次数
p = 0.3 # 每次试验成功的概率
k = np.arange(0, n + 1)
binomial_pmf = binom.pmf(k, n, p)
5. 绘制二项分布的概率质量函数图像,直观地观察其分布形态。
# 绘制二项分布图像
plt.bar(k, binomial_pmf)
plt.title('Binomial Distribution')
plt.xlabel('Number of Successes')
plt.ylabel('Probability Mass Function')
plt.show()
6. 指数分布也是常见的一种,它常用于描述事件发生的时间间隔。
# 指数分布示例
lam = 0.5 # 速率参数
x_exp = np.linspace(0, 10, 100)
exponential_pdf = expon.pdf(x_exp, scale = 1/lam)
7. 同样,绘制指数分布的概率密度函数图像。
# 绘制指数分布图像
plt.plot(x_exp, exponential_pdf)
plt.title('Exponential Distribution')
plt.xlabel('x')
plt.ylabel('Probability Density Function')
plt.show()
8. 再谈谈伽马分布,它在许多领域都有应用,比如在概率论中与指数分布和卡方分布密切相关。使用 `gamma` 函数来生成伽马分布的数据。
# 伽马分布示例
a = 2.0 # 形状参数
loc = 0.0 # 位置参数
scale = 1.0 # 尺度参数
x_gamma = np.linspace(gamma.ppf(0.01, a, loc, scale), gamma.ppf(0.99, a, loc, scale), 100)
gamma_pdf = gamma.pdf(x_gamma, a, loc, scale)
9. 绘制伽马分布的概率密度函数图像,以更好地理解其分布特征。
# 绘制伽马分布图像
plt.plot(x_gamma, gamma_pdf)
plt.title('Gamma Distribution')
plt.xlabel('x')
plt.ylabel('Probability Density Function')
plt.show()
10. 对于贝塔分布,它常用于表示概率的概率分布情况。以下是使用 `beta` 函数生成贝塔分布数据的示例。
# 贝塔分布示例
a = 2.0
b = 5.0
x_beta = np.linspace(beta.ppf(0.01, a, b), beta.ppf(0.99, a, b), 100)
beta_pdf = beta.pdf(x_beta, a, b)
11. 绘制贝塔分布的概率密度函数图像,展示其分布形态。
# 绘制贝塔分布图像
plt.plot(x_beta, beta_pdf)
plt.title('Beta Distribution')
plt.xlabel('x')
plt.ylabel('Probability Density Function')
plt.show()
12. 卡方分布在统计学的假设检验等方面有重要作用。通过 `chi2` 函数来生成卡方分布的数据。
# 卡方分布示例
df = 5 # 自由度
x_chi2 = np.linspace(chi2.ppf(0.01, df), chi2.ppf(0.99, df), 100)
chi2_pdf = chi2.pdf(x_chi2, df)
13. 绘制卡方分布的概率密度函数图像,帮助理解其特性。
# 绘制卡方分布图像
plt.plot(x_chi2, chi2_pdf)
plt.title('Chi-Square Distribution')
plt.xlabel('x')
plt.ylabel('Probability Density Function')
plt.show()
14. 学生 t 分布在小样本统计推断中经常用到。利用 `t` 函数生成学生 t 分布的数据。
# 学生 t 分布示例
df_t = 10 # 自由度
x_t = np.linspace(t.ppf(0.01, df_t), t.ppf(0.99, df_t), 100)
t_pdf = t.pdf(x_t, df_t)
15. 绘制学生 t 分布的概率密度函数图像,以便直观地观察其分布情况。
# 绘制学生 t 分布图像
plt.plot(x_t, t_pdf)
plt.title('Student\'s t Distribution')
plt.xlabel('x')
plt.ylabel('Probability Density Function')
plt.show()
16. F 分布在方差分析等方面有广泛应用。使用 `f` 函数来生成 F 分布的数据。
# F 分布示例
dfn = 3 # 分子自由度
dfd = 15 # 分母自由度
x_f = np.linspace(f.ppf(0.01, dfn, dfd), f.ppf(0.99, dfn, dfd), 100)
f_pdf = f.pdf(x_f, dfn, dfd)
17. 绘制 F 分布的概率密度函数图像,清晰呈现其分布特征。
# 绘制 F 分布图像
plt.plot(x_f, f_pdf)
plt.title('F Distribution')
plt.xlabel('x')
plt.ylabel('Probability Density Function')
plt.show()
18. 离散均匀分布表示在有限个等可能值上的离散分布。以下是使用 `randint` 函数生成离散均匀分布数据的示例(这里借助 `numpy` 中的 `randint` 函数来模拟)。
# 离散均匀分布示例
low = 1
high = 6
size = 100
discrete_uniform = np.random.randint(low, high + 1, size)
19. 可以通过统计离散均匀分布数据的频率来大致了解其分布情况(这里简单打印出每个值出现的次数)。
# 统计离散均匀分布的频率
unique, counts = np.unique(discrete_uniform, return_counts=True)
for i in range(len(unique)):
print(f"Value {unique[i]}: Count {counts[i]}")
20. 几何分布用于描述在一系列独立伯努利试验中,首次成功所需的试验次数。使用 `geom` 函数来生成几何分布的数据。
# 几何分布示例
p_geom = 0.2 # 每次试验成功的概率
x_geom = np.arange(1, 10)
geom_pmf = geom.pmf(x_geom, p_geom)
21. 绘制几何分布的概率质量函数图像,展示其分布特点。
# 绘制几何分布图像
plt.bar(x_geom, geom_pmf)
plt.title('Geometric Distribution')
plt.xlabel('Number of Trials until First Success')
plt.ylabel('Probability Mass Function')
plt.show()
22. 负二项分布与几何分布相关,它表示在一系列独立伯努利试验中,成功一定次数所需的试验次数。使用 `nbinom` 函数生成负二项分布的数据。
# 负二项分布示例
n = 5 # 成功的次数
p_nbinom = 0.3 # 每次试验成功的概率
x_nbinom = np.arange(5, 20)
nbinom_pmf = nbinom.pmf(x_nbinom, n, p_nbinom)
23. 绘制负二项分布的概率质量函数图像,以便观察其分布规律。
# 绘制负二项分布图像
plt.bar(x_nbinom, nbinom_pmf)
plt.title('Negative Binomial Distribution')
plt.xlabel('Number of Trials')
plt.ylabel('Probability Mass Function')
plt.show()
24. 超几何分布常用于抽样问题,比如从有限总体中抽取一定数量的样本,其中具有特定特征的样本数量的分布。使用 `hypergeom` 函数生成超几何分布的数据。
# 超几何分布示例
M = 100 # 总体中的元素个数
n = 20 # 总体中具有特定特征的元素个数
N = 10 # 抽取的样本大小
x_hypergeom = np.arange(0, n + 1)
hypergeom_pmf = hypergeom.pmf(x_hypergeom, M, n, N)
25. 绘制超几何分布的概率质量函数图像,展现其分布形态。
# 绘制超几何分布图像
plt.bar(x_hypergeom, hypergeom_pmf)
plt.title('Hypergeometric Distribution')
plt.xlabel('Number of Elements with Specific Feature in the Sample')
plt.ylabel('Probability Mass Function')
plt.show()
猜你喜欢
- 2025-01-14 整理20个Pandas统计函数
- 2025-01-14 一文带您精通Python 函数:全方位指南
- 2025-01-14 python机器学习:线性回归中的哑变量转换
- 2025-01-14 Python启航:30天编程速成之旅(第21天)- random
- 2025-01-14 字节跳动全链路压测(Rhino)的实践
- 2025-01-14 一次Java和Python的简单且直观的比较
- 2025-01-14 关于Python函数,你应该知道以下几点基础知识
- 2025-01-14 Python实现概率分布,学数据统计的需要收藏
- 2025-01-14 Python方差分析
- 2025-01-14 文本聚类分析(一)-python
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)