diff

paddle. diff ( x, n=1, axis=- 1, prepend=None, append=None, name=None ) [source]

Computes the n-th forward difference along the given axis. The first-order differences is computed by using the following formula:

\[out[i] = x[i+1] - x[i]\]

Higher-order differences are computed by using paddle.diff() recursively. Only n=1 is currently supported.

Parameters
  • x (Tensor) – The input tensor to compute the forward difference on

  • n (int, optional) – The number of times to recursively compute the difference. Only support n=1. Default:1

  • axis (int, optional) – The axis to compute the difference along. Default:-1

  • prepend (Tensor, optional) – The tensor to prepend to input along axis before computing the difference. It’s dimensions must be equivalent to that of x, and its shapes must match x’s shape except on axis.

  • append (Tensor, optional) – The tensor to append to input along axis before computing the difference, It’s dimensions must be equivalent to that of x, and its shapes must match x’s shape except on axis.

  • name (str|None) – A name for this layer(optional). If set None, the layer will be named automatically.

Returns

The output tensor with same dtype with x.

Return type

Tensor

Examples

import paddle

x = paddle.to_tensor([1, 4, 5, 2])
out = paddle.diff(x)
print(out)
# out:
# [3, 1, -3]

y = paddle.to_tensor([7, 9])
out = paddle.diff(x, append=y)
print(out)
# out:
# [3, 1, -3, 5, 2]

z = paddle.to_tensor([[1, 2, 3], [4, 5, 6]])
out = paddle.diff(z, axis=0)
print(out)
# out:
# [[3, 3, 3]]
out = paddle.diff(z, axis=1)
print(out)
# out:
# [[1, 1], [1, 1]]