mindspore.numpy.diff

mindspore.numpy.diff(a, n=1, axis=- 1, prepend=None, append=None)[源代码]

计算沿给定 axis 的n阶离散差分。

一阶差分由 \(out[i] = a[i+1] - a[i]\) 给出,沿给定 axis,通过迭代使用 diff 计算更高阶的差分。

说明

由于MindSpore不支持zero-shaped的Tensor,如果遇到空Tensor将引发ValueError。

参数:
  • a (Tensor) - 输入Tensor。

  • n (int, 可选) - 差分阶数。 如果为零,输出将按原样返回。 默认值:1。

  • axis (int, 可选) - 取差分的轴。 默认为最后一个轴。 默认值:-1。

  • prepend/append (Tensor, 可选) - 在执行差分之前在 axis 的前/后向 a 填充的值。 如果是标量值,会沿着 axis 方向填充,填充宽度为1,在所有其他方向上与输入数组shape相同的数组。否则,除了指定的 axis ,其余维度和shape必须与输入数组 a 匹配。 默认值: None

返回:

n阶差分。 输出的shape除了在指定的 axis 方向上的维数比 an 外,其他与 a 相同。 输出的类型与 a 中任意两个元素之间差分的类型相同,在大多数情况下,与 a 的类型相同。

异常:
  • TypeError - 如果输入的类型不符合上述指定类型。

  • ValueError - 如果 n < 0。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore.numpy as np
>>> arr = np.array([1, 3, -1, 0, 4])
>>> print(np.diff(arr, n=2))
[-6  5  3]