numpy.ma.MaskedArray.take#

方法

ma.MaskedArray.take(indices, axis=None, out=None, mode='raise')[原始碼]#

沿著軸從遮罩陣列中取出元素。

此函式對於遮罩陣列執行與「花式」索引 (使用陣列索引陣列) 相同的操作。如果您需要沿著給定軸的元素,則此函式可能更容易使用。

參數:
amasked_array

來源遮罩陣列。

indicesarray_like

要提取的值的索引。也允許使用純量作為索引。

axisint, 選用

選擇值的軸。預設情況下,會使用展平的輸入陣列。

outMaskedArray, 選用

如果提供,結果將放置在此陣列中。它應該具有適當的形狀和 dtype。請注意,如果 mode=’raise’,則 out 始終會被緩衝;使用其他模式可獲得更好的效能。

mode{‘raise’, ‘wrap’, ‘clip’}, 選用

指定超出範圍的索引將如何運作。

  • ‘raise’ – 引發錯誤 (預設)

  • ‘wrap’ – 環繞

  • ‘clip’ – 裁剪到範圍

‘clip’ 模式表示所有過大的索引都會被替換為指向該軸上最後一個元素的索引。請注意,這會停用使用負數進行索引。

回傳值:
outMaskedArray

回傳的陣列具有與 a 相同的型別。

另請參閱

numpy.take

ndarray 的等效函式。

compress

使用布林遮罩取出元素。

take_along_axis

透過匹配陣列和索引陣列來取出元素。

註解

此函式的行為與 numpy.take 類似,但它會處理遮罩值。遮罩會保留在輸出陣列中,而輸入陣列中的遮罩值在輸出中仍保持遮罩。

範例

>>> import numpy as np
>>> a = np.ma.array([4, 3, 5, 7, 6, 8], mask=[0, 0, 1, 0, 1, 0])
>>> indices = [0, 1, 4]
>>> np.ma.take(a, indices)
masked_array(data=[4, 3, --],
            mask=[False, False,  True],
    fill_value=999999)

indices 不是一維時,輸出也具有這些維度

>>> np.ma.take(a, [[0, 1], [2, 3]])
masked_array(data=[[4, 3],
                [--, 7]],
            mask=[[False, False],
                [ True, False]],
    fill_value=999999)