python的分段函数,python怎么编写分段函数

  python的分段函数,python怎么编写分段函数

  Python如何定义分段函数?以下是分段函数:

  一开始我写了一个简单版本的log_norm0,只能一个元素一个元素的进行。别想了。对于一个有大量元素的向量,肯定会变成乌龟。

  后来想到用一个指标函数来区分分割的两种情况,得到了log_norm1。但这种情况比较特殊,并不是每次都能施工成功。

  相关:《Python视频教程》

  最后发现numpy中有一个函数分段(x,condlist,funclist,* args,* kw),专门用来构造分段函数。x是输入,condlist表示分段的条件,funclist表示对应分段的处理函数。这给出了log_norm2。

  #元素方面

  def log_norm0(x):

  如果x=0:

  返回NP . log(x ^ 1)

  else:

  return - np.log(- x 1)

  #指示器

  定义log_norm1(x):

  # ind=np.where(x 0,1,0)

  ind=(x ^ 0)

  返回NP . log(x * ind 1)-NP . log(-x *(1.0-ind)1)

  # numpy.piecewise()

  定义log_norm2(x):

  返回NP。分段(x,[x=0,x ^ 0],[lambda x3360np.log (1x),lambda x3360-np.log (1-x)])最后观察各个函数的运行时间。

  tic=time.time()

  适用于范围内的I(x .尺寸):

  y[i]=log_norm0(x[i])

  toc=time.time()

  打印( log0: ,目录- tic)

  tic=time.time()

  y=log_norm1(x)

  toc=time.time()

  打印(日志1: ,目录- tic)

  tic=time.time()

  z=log_norm2(x)

  toc=time.time()

  根据print(log2: ,toc-tic)的观察结果,指示函数是最快的方法,但和分段差别不大。

  航海日志36860 . 88868888661

  测井记录0 . 58680 . 68868886861

  Log2: 0.5942573547363281以上是Python如何定义分段函数的细节。请多关注热门IT软件开发工作室的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: