一个Python库,提供计算模型的参数筛选,使用Morris基本效应方法或Cuntz,Mai等人对有效基本效应的扩展(Water Res Res Res,2015)。

pyeee的Python项目详细描述


计算模型的参数筛选

基于Morris的计算模型参数筛选Python库 初等效应法及其有效/序贯初等的推广 《水效应研究》(Cuntz,2015)。在

DOI

PyPI versionLicenseBuild Status

Coverage StatusDocumentation Status

关于Pyee

pyeee是一个Python库,用于执行计算的参数筛选 模型。它使用了Morris的基本效应方法及其推广 有效的或连续的基本效应

Cuntz,Mai等人。(2015)
非信息模型的计算廉价辨识 按顺序筛选的参数
^水资源研究, doi:10.1002/2015WR016907。在

该包使用JAMS Python包的几个函数 https://github.com/mcuntz/jams_python
JAMS包和hesseflux是不规则同步的。在

pyeee既可用于Python函数,也可用于外部程序,使用 {a9}例如^。 函数求值可以通过Python的多处理或MPI进行分发。在

文件

有关pyeee的完整文档可从“阅读文档”获得。在

http://pyeee.readthedocs.org/en/latest/

快速使用指南

简单Python函数

考虑Ishigami Homma函数:y = sin(x_0) + a*sin(x_1)^2 + b*x_2^4*sin(x_0)。在

a = b = 1得到:

importnumpyasnpdefishigami1(x):returnnp.sin(x[0])+np.sin(x[1])**2+x[2]**4*np.sin(x[0])

三个参数x_0x_1x_2-pi和{之间服从均匀分布。在

莫里斯的基本效应可以计算如下:

^{pr2}$

给出了基本效果($\mu*$):

# mu*print("{:.1f}{:.1f}{:.1f}".format(*out[:,0]))# gives: 173.1 0.6 61.7

顺序基本效应区分信息性和非信息性 使用数倍于Morris基本效应的参数:

# screenfrompyeeeimporteeenp.random.seed(seed=1023)# for reproducibility of examplesout=eee(ishigami1,lb,ub,ntfirst=10)

对于信息参数和 对于不具信息性的参数为False:

print(out)[TrueFalseTrue]

具有额外参数的Python函数

pyee的函数必须是func(x)的形式。使用Python的partial from functtools模块传递其他函数参数。在

例如,将参数$a$和$b$传递给Ishigami Homma函数。在

importnumpyasnpfrompyeeeimporteefromfunctoolsimportpartialdefishigami(x,a,b):returnnp.sin(x[0])+a*np.sin(x[1])**2+b*x[2]**4*np.sin(x[0])defcall_func_ab(func,a,b,x):returnfunc(x,a,b)# Partialise function with fixed parametersa=0.5b=2.0func=partial(call_func_ab,ishigami,a,b)npars=3# lower boundarieslb=np.ones(npars)*(-np.pi)# upper boundariesub=np.ones(npars)*np.pi# Elementary Effectsnp.random.seed(seed=1023)# for reproducibility of examplesout=ee(func,lb,ub,10)

形象地说,partiala和{}传递给函数 call_func_ab已经在定义期间,这样{em1}$pyeee就可以简单地调用它了 作为func(x),因此{}也被传递给call_func_ab。在

函数包装器

我们建议使用该软件包 partialwrap,它提供 要与partial一起使用的包装。在

frompyeee.utilsimportfunc_wrapperargs=[a,b]kwargs={}func=partial(func_wrapper,ishigami,args,kwargs)# screenout=eee(func,lb,ub)

无论有没有Python函数,都可以使用包装器 屏蔽参数,以及外部程序的包装器。在

有关详细信息,请参阅文档:

http://pyeee.readthedocs.org/en/latest/

安装

最简单的安装方法是通过pip

pip install pyeee

请参阅中的installation instructionsdocumentation了解更多信息。在

要求:

许可证

pyeee是根据麻省理工学院的许可证分发的。
有关详细信息,请参阅LICENSE文件。在

版权所有(c)2013-2020 Matthias Cuntz,Juliane Mai

{a10}由一个^结构提供。在

对Pyee的贡献

欢迎用户提交错误报告、功能请求和代码 通过GitHub为本项目提供的捐款。在

更多信息可在 Contributing 指导方针。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java未从Facebook OAuth接收名字、姓氏和姓氏   我自己代码中的java ConcurrentModificationException   java在Android上获得单像素TIFF图像   java图形输出中的swing集成弹出窗口“通知”   将数据库表中的所有数据集插入jTable Java   java如何使用Hibernate获取不完整的集合?   打印无法从java连接到打印机   java使用分隔符拆分带引号的字符串   java Axis2禁用严格验证(wsdl2java中的Eosv)允许什么,如何使其更加严格?   java有人能帮我处理循环代码吗   java将JsonObject数组转换为整数   JavaXWiki扩展:检测事件空间创建   java如何设置图表的文本方向以使用poi旋转所有文本?   eche RecyclerView项的java Set自定义字体   java单元测试带有私有构造函数的spring组件,无需注入   用户界面如何在java中动态显示一组多个元素?   如何从java应用程序调用IDL(交互式数据语言)?   Java的内置库实现