python概率密度函数_Python中概率密度函数的快速卷积
您可以使用快速傅立叶变换(FFT)有效地计算所有PDF的卷积:关键事实是,FFT of the convolution是单个概率密度函数FFT的乘积。因此,转换每个PDF,将转换后的PDF相乘,然后执行逆变换。您需要用0填充每个输入PDF到适当的长度,以避免换行的影响。在
这应该是相当有效的:如果您有m个pdf,每个pdf都包含n个条目,那么使用此方法计算卷积的时间应该增长为(m^2)n log(mn)。时间由fft控制,我们有效地计算m + 1独立的fft(m正变换和一个逆变换),每个fft的长度不超过mn。但和往常一样,如果你想要真正的时间安排,你就应该进行分析。在
下面是一些代码:import numpy.fft
def convolve_many(arrays):
"""
Convolve a list of 1d float arrays together, using FFTs.
The arrays need not have the same length, but each array should
have length at least 1.
"""
result_length = 1 + sum((len(array) - 1) for array in arrays)
# Copy each array into a 2d array of the appropriate shape.
rows = numpy.zeros((len(arrays), result_length))
for i, array in enumerate(arrays):
rows[i, :len(array)] = array
# Transform, take the product, and do the inverse transform
# to get the convolution.
fft_of_rows = numpy.fft.fft(rows)
fft_of_convolution = fft_of_rows.prod(axis=0)
convolution = numpy.fft.ifft(fft_of_convolution)
# Assuming real inputs, the imaginary part of the output can
# be ignored.
return convolution.real
把这个应用到你的例子中,我得到的结果是:
^{pr2}$
这是基本的想法。如果您想对此进行调整,还可以看看^{}(及其逆函数,^{}),它利用了输入是实的这一事实,从而生成更紧凑的变换数组。您还可以通过在rows数组中填充0来获得一些速度,这样列的总数对于执行FFT是最佳的。这里“最优”的定义将取决于FFT的实现,但是例如,2的幂次是很好的目标。最后,在创建rows时,如果所有的输入数组都具有相同的长度,可以进行一些明显的简化。但我将把这些潜在的改进留给你。在
python概率密度函数_Python中概率密度函数的快速卷积相关推荐
- python绘制概率密度曲线_python添加概率密度曲线-女性时尚流行美容健康娱乐mv-ida网...
自动秒收录 如何加入 (当前页) 购买本站源码 自媒体交流 查询是否收录 查询收录 × 快速加入 只要做上本站的友情链接,并在您站上点击一次,就免人工自动收录!并自动排在本站第一位. 本站已收录286 ...
- python加权随机_Python中的加权随机
我们平时比较多会遇到的一种情景是从一堆的数据中随机选择一个, 大多数我们使用random就够了, 但是假如我们要选取的这堆数据分别有自己的权重, 也就是他们被选择的概率是不一样的, 在这种情况下, 就 ...
- 如何使用java编程算概率_游戏中概率的编程实现(转之别人)最简单的
概率 听起来很玄 比如洗法宝 太一石 有一段说明 有一定概率 能改变法宝的技能阶数 那么 概率在编程中如何实现的呢 个人在大学里有学c++ java 以及vb 现以vb实现概率来说明 首先,要先说清楚 ...
- python map用法_Python中ChainMap的一种实用用法
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 简而言之ChainMap:将多个字典视为一个,解锁Python超能力. Python标准库中的集合模块包含 ...
- python基本统计量_Python中简单统计量的计算
本篇文章给大家带来的内容是关于Python中简单统计量的计算,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.这些操作都要确保已经在电脑中安装好了Anaconda集成库,如果安装好 ...
- python解析原理_Python 中 -m 的典型用法、原理解析与发展演变
在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c command | -m module- ...
- python正则表达式空格_python中的正则表达式的使用
一.正则表达式简介 正则表达式:又称正规表示式.正规表示法.正规表达式.规则表示式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或者是RE),是计算 ...
- python wraps模块_python中 wraps 的作用
这里使用两段代码比较加入wraps装饰器后,函数打印的结果对比: 新建文件名:Testword 代码1:不加wraps装饰器 # coding=utf-8 from functools import ...
- 用python输出数组_Python 中输出数组中的全部元素
只需要在开头加上一句即可 import numpy as np np.set_printoptions(threshold=np.inf) Python 输出到文本中 参考:https://blog. ...
最新文章
- 计算机专业大二分方向,该选择人工智能还是网络安全
- Ubuntu系统的安装
- mysql数据库5120_超傻瓜 H3C S5120 限速配置
- vue.js中mock本地json数据
- 【渝粤教育】国家开放大学2018年秋季 1021t劳动与社会保障法 参考试题
- 《UNIX环境高级编程》目录
- 漫话:什么是云计算?
- 【BZOJ-3123】森林 主席树 + 启发式合并
- Android租赁源码,AndroidUS六仔源码出租的配置文件操作封装
- PHP+Mysql高并发解决方案
- vs中opencv配置
- 现代支付系统的资金流向
- 如何选择一款程序员理想中的显示器
- infopath2007-2013直接连接数据源(Access或Sqlserver)设计表单模板
- 利用Matplotlib绘制各类图表
- 服务器改了密码 网页打不开了,为什么用户中心里的修改密码网页打不开
- TypeError: torch.nn.modules.batchnorm.BatchNorm2d is not a Module subclass
- c#如何wmf图片转换成png图片_【C#】使用fo-dicom完成BMP,JPG,PNG图片转换为DICOM文件-阿里云开发者社区...
- JM模型I帧帧内预测流程
- 科普读书会丨《被讨厌的勇气》:愤怒不是目的,是一种工具