qfeval_functions.functions.nanamin
- nanamin(x, dim=None, keepdim=False)[source]
Compute the minimum of tensor elements along specified dimensions, ignoring NaN values.
This function calculates the minimum of all valid (non-NaN) elements in a tensor along the specified dimension(s). Unlike
nanmin(), this function supports multiple dimensions but does not return indices. When no valid elements are found along a dimension, the result is NaN.The NaN-aware minimum is computed as:
\[\text{nanamin}(X) = \min_{i \text{ valid}} X_i\]where the minimum is over all valid (non-NaN) values.
- Parameters:
- Returns:
The minimum values computed only over valid (non-NaN) values. When no valid values exist along a dimension, the result is NaN. The shape depends on the input dimensions,
dim, andkeepdimparameters.- Return type:
Example
>>> # Simple minimum with NaN values >>> x = torch.tensor([1.0, 2.0, nan, 4.0, 5.0]) >>> QF.nanamin(x) tensor(1.)
>>> # All NaN returns NaN >>> all_nan = torch.tensor([nan, nan, nan]) >>> QF.nanamin(all_nan) tensor(nan)
>>> # 2D tensor with min along columns >>> x = torch.tensor([[1.0, nan, 3.0], ... [4.0, 5.0, nan]]) >>> QF.nanamin(x, dim=0) tensor([1., 5., 3.])
>>> # Min along rows >>> QF.nanamin(x, dim=1) tensor([1., 4.])
>>> # Multiple dimensions >>> x = torch.tensor([[[1.0, nan], [3.0, 4.0]], ... [[nan, 6.0], [7.0, nan]]]) >>> QF.nanamin(x, dim=(1, 2)) tensor([1., 6.])
>>> # With keepdim >>> x = torch.tensor([[1.0, nan, 3.0], ... [4.0, 5.0, nan]]) >>> QF.nanamin(x, dim=1, keepdim=True) tensor([[1.], [4.]])
>>> # All NaN slice returns NaN >>> x = torch.tensor([[1.0, 2.0], ... [nan, nan]]) >>> QF.nanamin(x, dim=1) tensor([1., nan])
>>> # With positive infinity >>> x = torch.tensor([[1.0, inf, 3.0], ... [nan, 2.0, inf]]) >>> QF.nanamin(x, dim=1) tensor([1., 2.])