python中对数图的导数
我们有python中对数图的导数,python,numpy,derivative,Python,Numpy,Derivative,我们有x和y值,我通过logx=np.log10(x)和logy=np.log10(y)获取它们的日志。我试图计算logy的导数w.r.t logx,所以dlogy/dlogx。我曾经用numpy梯度成功地做到了这一点,更准确地说 derivy=np.gradient(逻辑,np.gradient(logx)) 但出于某种奇怪的原因,它似乎不再工作,产生了错误:“回溯(最近一次调用last): 文件“derivlog.py”,第79行,在 grady=np.梯度(逻辑,np.梯度(logx))
x
和y
值,我通过logx=np.log10(x)
和logy=np.log10(y)
获取它们的日志。我试图计算logy的导数w.r.t logx,所以dlogy/dlogx。我曾经用numpy梯度成功地做到了这一点,更准确地说
derivy=np.gradient(逻辑,np.gradient(logx))
但出于某种奇怪的原因,它似乎不再工作,产生了错误:“回溯(最近一次调用last):
文件“derivlog.py”,第79行,在
grady=np.梯度(逻辑,np.梯度(logx))
文件“/usr/lib/python2.7/dist packages/numpy/lib/function_base.py”,第1598行,渐变
raise VALUERROR(“距离必须是标量”)
ValueError:距离必须是标量“
上下文:当试图检测幂律时,如果给定y
的值作为x的函数,
人们希望从本质上排除幂t,
所以我们取log,它给出logy~t*logx
,然后取导数以提取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]
还有其他(更合适的)吗python中获取此类数值导数的方法?感谢评论中的讨论,通过将numpy包从版本
1.12.1
更新为1.13.3,解决了np.gradient
的问题。
如果您也获得了ValueError
使用梯度时,“距离必须是标量”。因此,为了提取幂律的顺序,计算np.gradient(logy,logx)
仍然是一个有效的选择。你能提供一个和完整的回溯吗?np.gradient(np.log(y),np.gradient(np.log(x)))
适合我,Python3.6.3,np.“1.13.3”不是答案,只是一个关于表达式的问题:为什么要将np.gradient(logx)
作为gradient
的第二个参数?如果要近似dlogy/dlogx
,第二个参数应该是logx
”我曾经成功地做到了这一点[…],但由于某种奇怪的原因,它似乎不再起作用了“您使用的是哪个版本的numpy?您可以使用import numpy;print(np.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
。看起来gradient
在2017年做了一些工作,有关更多信息,请参阅及其链接到的问题和请求。