torch.nanmedian

torch.nanmedian(input) Tensor

返回 input 中值的中位数,忽略 NaN 值。

此函数与torch.median()input中没有NaN值时完全相同。当input包含一个或多个NaN值时,torch.median()将始终返回NaN,而此函数则会返回input中非NaN元素的中位数。如果input中的所有元素都是NaN,它也将返回NaN

参数

input (Tensor) – 需要输入的张量。

示例:

>>> a = torch.tensor([1, float('nan'), 3, 2])
>>> a.median()
tensor(nan)
>>> a.nanmedian()
tensor(2.)
torch.nanmedian(input, dim=-1, keepdim=False, *, out=None)

返回一个命名元组(values, indices),其中values包含input每一行在维度dim上的中位数(忽略NaN值),而indices包含这些中位数值在维度dim上的索引。

此函数与torch.median()在没有NaN值的行中完全相同。当一个包含一个或多个NaN值的行被缩减时,torch.median()总是将其结果设为NaN,而此函数则会计算非NaN元素的中位数。如果一个行中的所有元素都是NaN,那么它也会被缩减为NaN

参数
  • input (Tensor) – 需要输入的张量。

  • dim (int) - 需要减少的维度。

  • keepdim (bool) – 是否在输出张量中保留dim维度。

关键字参数

out ((Tensor, Tensor), 可选) – 第一个张量将被填充为中位数值,第二个张量(必须是 long 类型)则会被填充为 inputdim 维度上的索引。

示例:

>>> a = torch.tensor([[2, 3, 1], [float('nan'), 1, float('nan')]])
>>> a
tensor([[2., 3., 1.],
        [nan, 1., nan]])
>>> a.median(0)
torch.return_types.median(values=tensor([nan, 1., nan]), indices=tensor([1, 1, 1]))
>>> a.nanmedian(0)
torch.return_types.nanmedian(values=tensor([2., 1., 1.]), indices=tensor([0, 1, 0]))
本页目录