Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中对数图的导数_Python_Numpy_Derivative - Fatal编程技术网

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年做了一些工作,有关更多信息,请参阅及其链接到的问题和请求。