mindspore.numpy.gradient
========================

.. py:function:: mindspore.numpy.gradient(f, *varargs, axis=None, edge_order=1)

    返回一个N维数组的梯度。
    该梯度是通过在内部点使用二阶精确的中心差分法,在边界使用一阶或二阶精确的单侧(前向或后向)差分法计算得出的。
    因此返回的梯度与输入数组具有相同shape。

    .. note::
        目前我们仅支持 `edge_order` =1 且 `varargs` 间距均匀。

    参数:
        - **f** (Union[tuple, list, Tensor]) - 一个包含标量函数样本的N维数组。
        - **varargs** (Union[tuple[number], tuple[tensor scalar]], 可选) - f值之间的间距。在所有维度下默认为单位间距。间距可以使用以下方式指定: 1.单个标量指定所有维度的样本距离。 2.N个标量指定每个维度的恒定样本距离。
        - **axis** (Union[None, int, tuple(int), list(int)], 可选) -  梯度只沿给定的单个或多个轴计算。 默认情况下 ``(axis = None)`` 计算输入Tensor的所有轴的梯度。 `axis` 可能为负,在这种情况下,倒数计数。
        - **edge_order** (int, 可选) - 梯度使用N阶边界差分计算。 默认值: ``1`` 。

    返回:
        梯度,元素为Tensor的list(如果只有一个维度需要计算,则为单个Tensor)。 每个导数的shape与 `f` 相同。

    异常:
        - **TypeError** - 如果输入类型不符合上述规定。 
        - **ValueError** - 如果 `axis` 超出范围,或 `f` 的shape中有维度小于1
        - **NotImplementedError** - 如果 `edge_order` != 1,或 `varargs` 中包含非标量条目。