nanmean¶
沿 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)
>>> out1
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
0.44999996)
>>> out2 = paddle.nanmean(x, axis=0)
>>> out2
Tensor(shape=[4], dtype=float32, place=Place(cpu), stop_gradient=True,
[0.10000000, 0.25000000, 0.50000000, 0.79999995])
>>> out3 = paddle.nanmean(x, axis=0, keepdim=True)
>>> out3
Tensor(shape=[1, 4], dtype=float32, place=Place(cpu), stop_gradient=True,
[[0.10000000, 0.25000000, 0.50000000, 0.79999995]])
>>> out4 = paddle.nanmean(x, axis=1)
>>> out4
Tensor(shape=[2], dtype=float32, place=Place(cpu), stop_gradient=True,
[0.56666666, 0.33333334])
>>> out5 = paddle.nanmean(x, axis=1, keepdim=True)
>>> out5
Tensor(shape=[2, 1], dtype=float32, place=Place(cpu), stop_gradient=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])
>>> out6
Tensor(shape=[2], dtype=float32, place=Place(cpu), stop_gradient=True,
[2.66666675, 6.33333349])
>>> out7 = paddle.nanmean(y, axis=[0, 1])
>>> out7
Tensor(shape=[2], dtype=float32, place=Place(cpu), stop_gradient=True,
[3., 6.])