numpy.ma.masked_array.take#
方法
- ma.masked_array.take(indices, axis=None, out=None, mode='raise')[source]#
沿轴从掩码数组中取元素。
此函数对于掩码数组执行与“高级”索引(使用数组索引数组)相同的功能。如果需要沿给定轴的元素,它可能更容易使用。
- 参数:
- a掩码数组
源掩码数组。
- indices类数组
要提取值的索引。也允许标量作为索引。
- axisint, 可选
选择值的轴。默认情况下,使用展平的输入数组。
- outMaskedArray, 可选
如果提供,结果将放在此数组中。它应该具有适当的形状和数据类型。请注意,如果 mode='raise',out 总是被缓冲;使用其他模式以获得更好的性能。
- mode{'raise', 'wrap', 'clip'}, 可选
指定越界索引的行为方式。
‘raise’ – 抛出错误(默认)
‘wrap’ – 环绕
‘clip’ – 裁剪到范围
‘clip’ 模式意味着所有过大的索引都将被替换为沿该轴寻址最后一个元素的索引。请注意,这会禁用负数索引。
- 返回:
- outMaskedArray
返回的数组与 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)