mindspore.ops.diagonal

mindspore.ops.diagonal(input, offset=0, dim1=0, dim2=1)[源代码]

返回 input 特定的对角线视图。如果 input 为2-D,返回偏移量为 offset 的对角线元素。如果 input 维度大于2,则返回由 dim1dim2 确定的2-D子数组的对角线视图。这种情况下,移除 inputdim1dim2 维度,并且由 dim1dim2 确定的对角线元素插入 input 的最后一维。

参数:
  • input (Tensor) - 输入Tensor,其维度至少为2。

  • offset (int, 可选) - 对角线与主对角线的偏移。可以是正值或负值。默认值:0。

  • dim1 (int, 可选) - 二维子数组的第一轴,对角线应该从这里开始。默认值:0。

  • dim2 (int, 可选) - 二维子数组的第二轴,对角线应该从这里开始。默认值:1。

返回:

Tensor,如果Tensor是二维,则返回值是一维数组,如果输入维度大于2,则先移除维度 dim1dim2, 然后在末尾插入新的一维来对应对角元素。

异常:
  • TypeError - dim1dim2 的数据类型不是整型。

  • ValueError - 输入Tensor的维度少于2。

支持平台:

Ascend GPU CPU

样例:

>>> x = Tensor([[0, 1], [2, 3]], mstype.float32)
>>> output = ops.diagonal(x)
>>> print(output)
[0 3]