目标:用python生成一组具有上下限的对数正态分布随机数。

思路:利用python的scipy.stats生成截断正态分布,再将正态分布转化为对数正态分布。

要求:生成的目标对数正态分布随机数要介于区间[log_lower,log_upper]内,这里设定该区间为[5, 10],并绘制正态分布与对数正态分布随机数的直方图。

源代码:

import numpy as np

from pylab import *

from scipy import stats

import matplotlib

import matplotlib.pyplot as plt

# 设置matplotlib正常显示中文和负号

matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑体显示中文

matplotlib.rcParams['axes.unicode_minus'] = False # 正常显示负号

# region 【功能函数】生成截断对数正态分布,要求对数正态在[log_lower,log_upper]

def get_trunc_lognorm(mu, sigma, log_lower, log_upper=np.inf, data_num=10000):

norm_lower = np.log(log_lower)

norm_upper = np.log(log_upper)

X = stats.truncnorm((norm_lower - mu) / sigma, (norm_upper - mu) / sigma, loc=mu, scale=sigma)

norm_data = X.rvs(data_num)

log_data = np.exp(norm_data)

return norm_data, log_data

# endregion

mu, sigma = 0, 1

norm_data, log_data = get_trunc_lognorm(mu, sigma, 5, 10)

figure(4)

subplot(2, 1, 1)

plt.hist(norm_data, normed=1, bins=30)

plt.xticks(np.arange(mu - 5 * sigma, mu + 5 * sigma, 0.5))

plt.title("中间过程的截断正态分布")

subplot(2, 1, 2)

plt.hist(log_data, normed=1, bins=30)

plt.xticks(np.arange(0, 50, 5))

# plt.xlim(0,50)

plt.title("所求的截断对数正态分布")

plt.show()

执行结果:

python对数正态分布函数_python生成具有上下限的截断对数正态分布相关推荐

  1. python生成正态分布数据_python 生成正态分布数据,并绘图和解析

    1.生成正态分布数据并绘制概率分布图 import pandas as pd import numpy as np import matplotlib.pyplot as plt # 根据均值.标准差 ...

  2. python反序数函数_python range()函数取反序遍历sequence的方法

    python range()函数取反序遍历sequence的方法 python中的range函数取反序有两种方式 第一种:先构建一个列表,然后对列表中的元素进行反转. 例如: a=range(5) f ...

  3. python list join函数_Python中join()函数多种操作代码实例

    这篇文章主要介绍了Python中join()函数多种操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python中有.join()和os ...

  4. python中help函数_Python help()函数

    python中help函数 Python help() function is used to get the documentation of specified module, class, fu ...

  5. python反序数函数_python逆序函数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python sorted()函数 list内置一个方法sort(),可以实现对 ...

  6. python中label函数_python实现在函数图像上添加文字和标注的方法

    如下所示: import matplotlib.pyplot as plt import numpy as np from matplotlib import font_manager #先确定字体, ...

  7. python中execute函数_python中的函数是如何使用的?

    欢迎关注「issnail」感谢! "一起学习,一起成长!" 1.定义函数与调用函数 定义python函数:依次输入def.函数名.带有函数参数的圆括号,最后紧跟一个冒号(:) 函数 ...

  8. python 匿名回调函数_Python面试题之回调函数

    编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是编写库:而应用编程就是利用写好的各种库来编写具某 ...

  9. python画正切函数_python的pygal模块绘制反正切函数图像方法

    python的pygal模块绘制反正切函数图像方法 python是一个很有趣的语言,可以在命令行窗口运行.python中有很多功能强大的模块,这篇经验告诉你,如何使用python的pygal模块绘制反 ...

  10. python中随机数函数_Python随机数函数

    摘要: 下文讲述Python代码中seed()函数的简介说明,如下所示: seed()函数功能 用于改变随机数生成器的种子, 常用于其它随机函数之前运行此函数 seed()函数语法 seed.seed ...

最新文章

  1. 福布斯 : 企业市场Chrome任重道远
  2. 使用SSH命令行远程登录运行在CloudFoundry上的应用
  3. mybatis自己学习的一些总结
  4. HTML中空格代码为,html空格 html 空格代码
  5. WPF纯手工两步打造图片切割工具(二)
  6. Azure Synapse Analytics简介第3部分:数据科学和商业智能
  7. php 调用图,php 缩略图类(附调用示例)
  8. python魔法方法和普通方法_Python魔法方法之属性访问详解!
  9. Mac下配置ndk/adb
  10. new RandomAccessFile有时很耗时间
  11. python属性是什么意思_什么是python类属性
  12. Mysql的交叉表查询
  13. ugui scrollview 3d特效 裁减
  14. 增益自适应PI控制器+死区过滤器(Smart PLC向导PID编程应用)
  15. Android Snackbar控件
  16. CNdeepdive 安装报错:deepdive Failed connect to raw.githubusercontent.com:443; Connection refused
  17. 神经翻译笔记5扩展b. 常用的机器翻译技巧
  18. JavaWeb-仿小米商场(8) 订单支付[沙箱支付]
  19. 毕业后到底去学术界还是工业界?杜克大学陈怡然教授亲述5条“小秘籍”
  20. hub_thread

热门文章

  1. Codeforces 1027C. Minimum Value Rectangle
  2. IDEA 修改全文搜索快捷键
  3. python允许无止境的循环_python基础课程 第6章 循环(无尽的未来)
  4. 第15课 模块与包
  5. const的小把戏。
  6. vulnhub靶机_WHO WANTS TO BE KING: 1
  7. 【Watery DP】[Dota1002]光之守卫(Gandolf)
  8. 【路径规划】基于粒子群算法机器人避障路径规划matlab代码
  9. 算法导论8.4-4-单位圆中均匀分布情况--桶排序
  10. html input 宽度自适应,CSS实现input宽度根据输入内容自适应