nanmean

paddle. nanmean ( x, axis=None, keepdim=False, name=None ) [源代码]

沿 axis 计算 x 的平均值,且忽略掉 NaNs 值。

参数

  • x (Tensor) - 输入的 Tensor,数据类型为:unit16、float16、float32、float64。

  • axis (int|list|tuple,可选) - 指定对 x 进行计算的轴。axis 可以是 int、list(int)、tuple(int)。如果 axis 包含多个维度,则沿着 axis 中的所有轴进行计算。axis 或者其中的元素值应该在范围[-D, D)内,D 是 x 的维度。如果 axis 或者其中的元素值小于 0,则等价于 \(axis + D\)。如果 axis 是 None,则对 x 的全部元素计算平均值。默认值为 None。

  • keepdim (bool,可选) - 是否在输出 Tensor 中保留减小的维度。如果 keepdim 为 True,则输出 Tensor 和 x 具有相同的维度(减少的维度除外,减少的维度的大小为 1)。否则,输出 Tensor 的形状会在 axis 上进行 squeeze 操作。默认值为 False。

  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。

返回

Tensor,沿着 axis 进行平均值计算的结果且忽略掉 NaNs 值,数据类型和 x 相同。

代码示例

import paddle
# x is a 2-D Tensor:
x = paddle.to_tensor([[float('nan'), 0.3, 0.5, 0.9],
                      [0.1, 0.2, float('-nan'), 0.7]])
out1 = paddle.nanmean(x)
# [0.44999996]
out2 = paddle.nanmean(x, axis=0)
# [0.1, 0.25, 0.5, 0.79999995]
out3 = paddle.nanmean(x, axis=0, keepdim=True)
# [[0.1, 0.25, 0.5, 0.79999995]]
out4 = paddle.nanmean(x, axis=1)
# [0.56666666 0.33333334]
out5 = paddle.nanmean(x, axis=1, keepdim=True)
# [[0.56666666]
#  [0.33333334]]

# y is a 3-D Tensor:
y = paddle.to_tensor([[[1, float('nan')], [3, 4]],
                       [[5, 6], [float('-nan'), 8]]])
out6 = paddle.nanmean(y, axis=[1, 2])
# [2.66666675, 6.33333349]
out7 = paddle.nanmean(y, axis=[0, 1])
# [3., 6.]