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


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


用法:

mxnet.ndarray.op.take(a=None, indices=None, axis=_Null, mode=_Null, out=None, name=None, **kwargs)

參數

  • a(NDArray) - 輸入數組。
  • indices(NDArray) - 要提取的值的索引。
  • axis(int, optional, default='0') - 要取的輸入數組的軸。對於秩為 r 的輸入張量,它可以在 [-r, r-1] 的範圍內
  • mode({'clip', 'raise', 'wrap'},optional, default='clip') - 指定越界索引如何處理。默認為“clip”。 “clip” 表示剪輯到範圍。因此,如果提到的所有索引都太大,則它們將替換為指向軸上最後一個元素的索引。 “wrap” 表示環繞。 “raise” 表示當索引超出範圍時引發錯誤。
  • out(NDArray, optional) - 輸出 NDArray 來保存結果。

返回

out- 此函數的輸出。

返回類型

NDArray 或 NDArray 列表

沿給定軸從輸入數組中獲取元素。

此函數使用提供的索引沿特定軸對輸入數組進行切片。

給定等級 r >= 1 的數據張量和等級 q 的索引張量,收集由索引索引的數據軸維度的條目(默認情況下 outer-most 1 作為軸 = 0),並將它們連接到等級的輸出張量中q + (r - 1)。

例子:

x = [4.  5.  6.]

// Trivial case, take the second element along the first axis.

take(x, [1]) = [ 5. ]

// The other trivial case, axis=-1, take the third element along the first axis

take(x, [3], axis=-1, mode='clip') = [ 6. ]

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

// In this case we will get rows 0 and 1, then 1 and 2. Along axis 0

take(x, [[0,1],[1,2]]) = [[[ 1.,  2.],
                           [ 3.,  4.]],

                          [[ 3.,  4.],
                           [ 5.,  6.]]]

// In this case we will get rows 0 and 1, then 1 and 2 (calculated by wrapping around).
// Along axis 1

take(x, [[0, 3], [-1, -2]], axis=1, mode='wrap') = [[[ 1.  2.]
                                                     [ 2.  1.]]

                                                    [[ 3.  4.]
                                                     [ 4.  3.]]

                                                    [[ 5.  6.]
                                                     [ 6.  5.]]]

take 輸出的存儲類型取決於輸入存儲類型:

  • take(default, default) = default

  • take(csr, default, axis=0) = csr

相關用法


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