numpy gradient()在版本之间表现不同

时间:2017-10-12 05:16:18

标签: python numpy gradient

在搜索numpy.gradient()用法时,我注意到了这一点。似乎从numpy 1.13开始,该函数对输入参数的处理方式与以前的版本不同。这是一个简单的例子:

import numpy as np

x=np.linspace(0,10,100)
y=np.sin(x)

dx=np.gradient(x)

grad1=np.gradient(y,dx)
print grad1

grad2=np.gradient(y,x)
print grad2

我在numpy 1.13和1.11.3中测试过。

在1.13中,gradient(array1, array2)array2视为array1的坐标(x)。但在1.11.3中,它将array2视为坐标的区分(dx)。因此grad1适用于1.11.3,grad2适用于1.13。

我认为这是一个相当危险的陷阱,如果使用不同版本的numpy运行相同的代码,人们可能会得到错误的结果。或者我错过了一些可以清除这种含糊之处的东西?

0 个答案:

没有答案