torch.nanmean — PyTorch 2.7 documentation (original) (raw)

torch.nanmean(input, dim=None, keepdim=False, *, dtype=None, out=None) → Tensor

Computes the mean of all non-NaN elements along the specified dimensions. Input must be floating point or complex.

This function is identical to torch.mean() when there are no NaN values in the input tensor. In the presence of NaN, torch.mean() will propagate the NaN to the output whereas torch.nanmean() will ignore theNaN values (torch.nanmean(a) is equivalent to torch.mean(a[~a.isnan()])).

If keepdim is True, the output tensor is of the same size as input except in the dimension(s) dim where it is of size 1. Otherwise, dim is squeezed (see torch.squeeze()), resulting in the output tensor having 1 (or len(dim)) fewer dimension(s).

Parameters

Keyword Arguments

See also

torch.mean() computes the mean value, propagating NaN.

Example:

x = torch.tensor([[torch.nan, 1, 2], [1, 2, 3]]) x.mean() tensor(nan) x.nanmean() tensor(1.8000) x.mean(dim=0) tensor([ nan, 1.5000, 2.5000]) x.nanmean(dim=0) tensor([1.0000, 1.5000, 2.5000])

If all elements in the reduced dimensions are NaN then the result is NaN

torch.tensor([torch.nan]).nanmean() tensor(nan)