maxframe.tensor.median#

maxframe.tensor.median(a, axis=None, out=None, overwrite_input=False, keepdims=False)[源代码]#

沿指定轴计算中位数。

返回张量元素的中位数。

参数:
  • a (array_like) -- 输入张量或可转换为张量的对象。

  • axis ({int, sequence of int, None}, optional) -- 计算中位数的轴。默认情况下沿张量的展平版本计算中位数。自版本 1.9.0 起支持轴序列。

  • out (Tensor, optional) -- 用于放置结果的替代输出张量。它必须具有与预期输出相同的形状和缓冲区长度,但必要时会进行类型转换。

  • overwrite_input (bool, optional) -- 仅为了与 Numpy 兼容,不会生效。

  • keepdims (bool, optional) -- 如果设置为 True,则在结果中将被规约的轴保留为大小为一的维度。使用此选项时,结果将能正确地与原始 arr 广播。

返回:

median -- 保存结果的新张量。如果输入包含小于 float64 的整数或浮点数,则输出数据类型为 np.float64。否则,输出的数据类型与输入相同。如果指定了 out,则返回该张量。

返回类型:

Tensor

参见

mean, percentile

备注

给定长度为 N 的向量 VV 的中位数是其排序后副本 V_sorted 的中间值——即当 N 为奇数时的 V_sorted[(N-1)/2],以及当 N 为偶数时 V_sorted 中间两个值的平均值。

示例

>>> import maxframe.tensor as mt
>>> a = mt.array([[10, 7, 4], [3, 2, 1]])
>>> a.execute()
array([[10,  7,  4],
       [ 3,  2,  1]])
>>> mt.median(a).execute()
3.5
>>> mt.median(a, axis=0).execute()
array([6.5, 4.5, 2.5])
>>> mt.median(a, axis=1).execute()
array([7.,  2.])
>>> m = mt.median(a, axis=0)
>>> out = mt.zeros_like(m)
>>> mt.median(a, axis=0, out=m).execute()
array([6.5,  4.5,  2.5])
>>> m.execute()
array([6.5,  4.5,  2.5])