如果我有一个一维numpy数组,并且想返回一个包含相对于x的一阶导数的一维numpy数组,那么我是否要使用np.gradient(x)?我想我做错了事
这是我的代码,但告诉我我的答案不正确。
def dfunc(x):
'''
Parameters
x: 1D numpy array
Returns
df: 1D numpy array containing first derivatives wrt x
'''
# WRITE YOUR CODE HERE
df = np.gradient(x)
return df
答案 0 :(得分:1)
numpy梯度函数计算梯度的二阶中心有限差分近似值。
您可以在Wikipedia finite difference page中进一步阅读该方法。
让我们看一个简单的例子
f = np.linspace(0,100,1000) * 2
的诅咒f的梯度应为2,但
np.gradient(f)
将返回值为0.2002002的完整数组,这就是因为np.gradient元素之间的默认间距为1.0,所以要获得正确的答案,我们应在f数组中指定元素之间的间距。
np.gradient(f, varargs=np.linspace(0,100, 1000)[1])
将按预期返回数组填充为2.0