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)