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 参数
备注
方差是与均值的平方偏差的平均值, 即,
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])