python中日志图的衍生物

时间:2018-01-09 15:16:48

标签: python numpy derivative

我们有xy值,我正在记录logx = np.log10(x)logy = np.log10(y)。我试图计算logy w.r.t logx的衍生物,所以dlogy / dlogx。我曾经使用numpy渐变成功地做到这一点,更确切地说是

derivy = np.gradient(logy,np.gradient(logx))

但由于一些奇怪的原因,它似乎不再起作用而产生错误:"Traceback (most recent call last): File "derivlog.py", line 79, in <module> grady = np.gradient(logy,np.gradient(logx)) File "/usr/lib/python2.7/dist-packages/numpy/lib/function_base.py", line 1598, in gradient raise ValueError("distances must be scalars") ValueError: distances must be scalars"

上下文:在尝试检测幂y ~ x^t,y给出x,的值作为t,的函数的人,想要进行exctract基本上是权力log y ~ t*log x所以我们采用提供t.的日志,然后采用导数来提取x=[ 3. 4. 5. 6. 7. 8. 9. 10. 11.]

以下是重新创建问题的最小示例:y = [ 1.05654 1.44989 1.7939 2.19024 2.62387 3.01583 3.32106 3.51618 3.68153]

{{1}}

python中有其他(更适合的)方法来获取这样的数值导数吗?

1 个答案:

答案 0 :(得分:1)

感谢评论中的讨论,np.gradient的问题已通过将numpy软件包从版本1.12.1更新为1.13.3.来解决。如果您还获得了此更新,则此更新特别相关使用ValueError"distances must be scalars" gradient.因此,为了提取幂律的顺序,计算np.gradient(logy,logx)仍然是实现它的有效选择。