numpy.ma.MaskedArray.take#

方法

ma.MaskedArray.take(indices, axis=None, out=None, mode='raise')[源代码]#

沿轴从掩码数组中取出元素。

此函数对于掩码数组执行与“花式”索引(使用数组索引数组)相同的功能。如果您需要沿给定轴的元素,它可能更容易使用。

参数:
a掩码数组

源掩码数组。

indices类数组

要提取值的索引。也允许使用标量作为索引。

axis整型,可选

选择值的轴。默认情况下,使用展平的输入数组。

out掩码数组,可选

如果提供,结果将放入此数组中。它应该具有适当的形状和数据类型。请注意,如果 mode='raise',则 out 始终会被缓冲;请使用其他模式以获得更好的性能。

mode{‘raise’, ‘wrap’, ‘clip’},可选

指定越界索引的行为方式。

  • ‘raise’ – 抛出错误(默认)

  • ‘wrap’ – 循环

  • ‘clip’ – 截断到范围

‘clip’ 模式意味着所有过大的索引都将被替换为沿该轴寻址最后一个元素的索引。请注意,这会禁用使用负数进行索引。

返回:
out掩码数组

返回的数组与 a 具有相同的类型。

另请参阅

numpy.take

ndarrays 的等效函数。

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)