数组元素相隔多个元素的梯度

问题描述 投票:0回答:1

是否可以在相距多个元素的两个点之间获取梯度?

一个简单的数组:

f = np.array([4,5,8,1,5,3,2,5])

我想编程以下内容:

  • 在边界处:

    np.gradient

    使用的一侧
  • 边界值旁边的值:

    np.gradient
    用于内部点的中心差异

  • 对于内点

    ((i-2)-(i+2))/4

生成的数组:

f_res = np.array([1,2,0.25,-0.5,-1.5,1,1,3])

np.gradient 的文档:numpy.gradient

python numpy gradient
1个回答
0
投票

您可以轻松地手动计算:

N = 2
out = np.gradient(f)
out[N:-N] = (f[2*N:]-f[:-2*N])/4

输出:

array([ 1.  ,  2.  ,  0.25, -0.5 , -1.5 ,  1.  ,  1.  ,  3.  ])
© www.soinside.com 2019 - 2024. All rights reserved.