mindspore.ops.Median
- class mindspore.ops.Median(global_median=False, axis=0, keep_dims=False, ignore_nan=False)[源代码]
输出Tensor指定维度 axis 上的中值与其对应的索引。如果 global_median 为True,则计算Tensor中所有元素的中值。
警告
如果 input 的中值不唯一时(输入中有重复值且重复值恰好为中值), indices 不一定包含第一个出现的中值。 indices 包含的索引与该算子的具体实现方式和后端类型相关,因此某些情况下,CPU和GPU的返回值可能不相同。
如果 global_median 为
True
, 第二个输出 indices 无意义。
- 参数:
global_median (bool, 可选) - 是否计算Tensor中所有元素的中值。默认值:
False
。axis (int, 可选) - 进行中值计算的轴。默认值:
0
。keep_dims (bool, 可选) - 是否保留 axis 指定的维度。默认值:
False
。ignore_nan (bool, 可选) - 是否忽略输入Tensor中的NaN值。默认值:
False
。
- 输入:
x (Tensor) - 要计算中值的Tensor。
- 输出:
y (Tensor) - 中值,数据类型与 x 相同。
如果 global_median 为
True
, y 只有一个元素。如果 keep_dims 为
True
, y 的shape除了在 axis 维度上为1外与 x 一致。其他情况下, y 比 x 缺少 axis 指定的维度。
indices (Tensor) - 中值的索引。shape与 y 一致,数据类型为int64。
- 异常:
TypeError - x 不是Tensor。
TypeError - global_median 、 keep_dims 或 ignore_nan 被指定了一个非bool值。
TypeError - axis 不是int。
ValueError - axis 不在 [-x.dim, x.dim-1] 范围内。
- 支持平台:
GPU
CPU
样例:
>>> # case 1 : common median compute >>> from mindspore import Tensor, ops >>> import numpy as np >>> x = Tensor(np.array([[5, 1, 2],[3, 5, 7], [1, 6, 4]]).astype(np.int64)) >>> median = ops.Median(global_median=False, axis=0, keep_dims=False) >>> y = median(x) >>> print(y) (Tensor(shape=[3], dtype=Int64, value= [3, 5, 4]), Tensor(shape=[3], dtype=Int64, value= [1, 1, 2])) >>> # case 2 : global median compute >>> from mindspore import Tensor, ops >>> import numpy as np >>> x = Tensor(np.array([[1, 7, 6],[5, 1, 3],[9, 17, 1]]).astype(np.int32)) >>> median = ops.Median(global_median=True) >>> y = median(x) >>> print(y) (Tensor(shape=[], dtype=Int32, value= 5), Tensor(shape=[], dtype=Int64, value= 0))