mars.tensor.nanvar#

mars.tensor.nanvar(a, axis=None, dtype=None, out=None, ddof=0, keepdims=None, combine_size=None)[来源]#

计算指定轴上的方差,同时忽略NaN值。

返回张量元素的方差,这是分布离散程度的度量。方差默认情况下是对展平的张量计算的,否则是在指定轴上计算。

对于所有全为NaN的切片或自由度为零的切片,返回NaN并引发RuntimeWarning

Parameters
  • a (array_like) – 包含所需方差的数字的张量。如果a不是张量,将尝试进行转换。

  • axis (int, 可选) – 计算方差的轴。默认是计算展平数组的方差。

  • dtype (数据类型, 可选) – 用于计算方差的类型。对于整数类型的张量,默认是 float32;对于浮点类型的张量,类型与张量类型相同。

  • out (张量, 可选) – 用于放置结果的替代输出张量。它必须具有与预期输出相同的形状,但如果需要,类型会被转换。

  • ddof (int, 可选) – “自由度增量”:用于计算的除数是N - ddof,其中N表示非NaN元素的数量。默认情况下ddof为零。

  • keepdims (bool, 可选) – 如果设置为 True, 被减少的轴将作为大小为一的维度保留在结果中。使用此选项,结果将能够正确广播到原始 a

  • combine_size (int, 可选) – 拼接的块数。

Returns

方差 – 如果 out 为 None,则返回一个包含方差的新张量,否则返回对输出张量的引用。如果 ddof >= 切片中非 NaN 元素的数量或切片仅包含 NaNs,则该切片的结果为 NaN。

Return type

张量,参见上面的 dtype 参数

另请参阅

std

标准差

mean

平均

var

在不忽略NaN的情况下的方差

nanstd, nanmean

备注

方差是与均值的平方偏差的平均值, 即, var = mean(abs(x - x.mean())**2).

均值通常计算为 x.sum() / N,其中 N = len(x)。然而,如果指定了 ddof,则使用除数 N - ddof。在标准统计实践中, ddof=1 提供了假设无限总体的方差的无偏估计。 ddof=0 为正态分布变量提供了方差的最大似然估计。

请注意,对于复数,绝对值在平方之前被取出,因此结果总是实数且非负。

对于浮点输入,方差是使用输入所具有的相同精度计算的。根据输入数据,这可能导致结果不准确,尤其是对于 float32(见下面的示例)。使用 dtype 关键字指定更高精度的累加器可以缓解这个问题。

为了使该函数在Tensor的子类上工作,它们必须定义 sum,并使用关键字参数keepdims

示例

>>> import mars.tensor as mt
>>> a = mt.array([[1, mt.nan], [3, 4]])
>>> mt.nanvar(a).execute()
1.5555555555555554
>>> mt.nanvar(a, axis=0).execute()
array([ 1.,  0.])
>>> mt.nanvar(a, axis=1).execute()
array([ 0.,  0.25])