Python反函数计算——pynverse库官方链接: https://pypi.org/project/pynverse /
安装
使用pip安装库:
如何使用pip install pynverse
Pynverse提供了主要函数inversefunc,用于计算作为第一参数传递给callable的函数f的数字倒数。
from pynverse import inversefunc可用于计算特定y_values点的反函数。
cube=(lambdax:x**3) invcube=inversefunc ) cube,y_values=3) #array ) 3.000000063797567 )或y _ values
invcube=inversefunc(cube ) invcube(27 ) array ) 3.000000063797567 )函数必须在函数的范围内连续且严格地单调(即,纯粹的减少或纯粹的增加) 缺省情况下,域包含所有实数,但可以使用domain参数限制区间。
importnumpyasnpinversefunc (NP.cos,y _ values=[ 1,0,-1],#shouldgive(0,pi/2,pi ) . domain=[0,NP
inversefunc(NP.log10,y_values=-2,# Should give 0.01. domain=0,open_domain=[True,False] ) Array )
invtan=inversefunc(NP.tan, domain=[-np.pi/2,np.pi/2], open_domain=True ) inv tan [ 1,0 -7.85398163e-01] )通过使用args参数将其他参数传递给函数,可以更轻松地重用可调用项。
invsquare=inversefunc(NP.power,args=(2) 2,domain=0) inv square ([ 4,16,64 ] ) )2.4 .8 .
invmod=inversefunc(NP.mod,args=(1),domain=[ 5,6 ], open_domain=[False,True],image=[ 0,1 ]
inversefunc(NP.log10,y_values=-8,# Should give 0.01. domain=0,open_domain=True, accuracy=6) pynverssion inverse.py :195: runtime warning : resultsobtainedwithlessthan6decimaldigitsofaccuracy # Aron 这些是将返回的数字的可调整用量与数组一起使用以生成图表,并与分析的相反情况进行比较的示例,每个计算简单如下:
log=lambdax:NP.log10(x ) in vlog=scipy.misc.inverse func (log,domain=0,open_domain=True ) x1=NP.NP 100 ) ax1.plot(x1,log ) y1,' b- ' ) ax1.plot(x1,invlog ) x2,' b- ' ) invlog_a=lambdax336010**xax2
特别是,段函数定义提供了piecewise效用函数,该函数解决了处理标量和数组时的np.piecewise问题。 例如,最后一个图的反向获得如下:
from pynverse import inversefunc,piecewise pw=lambdax : piecewise (x 1,(x=1(* ) x3 ),x=3),[ lambda x 33: