當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python mxnet.ndarray.op.diag用法及代碼示例


用法:

mxnet.ndarray.op.diag(data=None, k=_Null, axis1=_Null, axis2=_Null, out=None, name=None, **kwargs)

參數

  • data(NDArray) - 輸入 ndarray
  • k(int, optional, default='0') - 有問題的對角線。默認值為 0。對主對角線上方的對角線使用 k>0,對主對角線下方的對角線使用 k<0。如果輸入具有形狀 (S0 S1) k 必須在 -S0 和 S1 之間
  • axis1(int, optional, default='0') - 感興趣的子陣列的第一個軸。當輸入是一維數組時忽略。
  • axis2(int, optional, default='1') - 感興趣的子陣列的第二個軸。當輸入是一維數組時忽略。
  • out(NDArray, optional) - 輸出 NDArray 來保存結果。

返回

out- 此函數的輸出。

返回類型

NDArray 或 NDArray 列表

提取對角線或構造對角行數組。

diag 的行為取決於輸入數組的維度:

  • 一維數組:構造一個以輸入為對角線的二維數組,所有其他元素為零。

  • N-D 數組:提取具有由 axis1axis2 指定的軸的子數組的對角線。輸出形狀將通過從輸入形狀中刪除編號為 axis1axis2 的軸並在結果中附加一個具有相關對角線大小的新軸來決定。

    例如,當輸入形狀為 (2, 3, 4, 5)axis1axis2 分別為 0 和 2 且 k 為 0 時,生成的形狀將為 (3, 5, 2)

例子:

x = [[1, 2, 3],
     [4, 5, 6]]

diag(x) = [1, 5]

diag(x, k=1) = [2, 6]

diag(x, k=-1) = [4]

x = [1, 2, 3]

diag(x) = [[1, 0, 0],
           [0, 2, 0],
           [0, 0, 3]]

diag(x, k=1) = [[0, 1, 0],
                [0, 0, 2],
                [0, 0, 0]]

diag(x, k=-1) = [[0, 0, 0],
                 [1, 0, 0],
                 [0, 2, 0]]

x = [[[1, 2],
      [3, 4]],

     [[5, 6],
      [7, 8]]]

diag(x) = [[1, 7],
           [2, 8]]

diag(x, k=1) = [[3],
                [4]]

diag(x, axis1=-2, axis2=-1) = [[1, 4],
                               [5, 8]]

相關用法


注:本文由純淨天空篩選整理自apache.org大神的英文原創作品 mxnet.ndarray.op.diag。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。