maxframe.tensor.nanvar#

maxframe.tensor.nanvar(a, axis=None, dtype=None, out=None, ddof=0, keepdims=None)[源代码]#

沿指定轴计算方差,同时忽略 NaN。

返回张量元素的方差,用于衡量分布的离散程度。默认情况下,方差是针对展平后的张量计算的,否则就在指定轴上进行计算。

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

参数:
  • a (array_like) -- 包含所需方差数值的张量。如果 a 不是一个张量,则会尝试进行转换。

  • axis (int, optional) -- 计算方差所沿用的轴。默认情况下,是计算展平后数组的方差。

  • dtype (data-type, optional) -- 用于计算方差的数据类型。对于整数类型的张量,默认为 float32;对于浮点类型的张量,则与张量类型相同。

  • out (Tensor, optional) -- 用于放置结果的替代输出张量。它必须与期望输出具有相同的形状,如有必要,类型会被转换。

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

  • keepdims (bool, optional) -- 如果设置为 True,则在结果中保留被规约的轴,其大小为 1。使用此选项时,结果将能正确地与原始 a 进行广播。

返回:

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

返回类型:

Tensor, see dtype parameter above

参见

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 的子类上正常工作,它们必须定义带有关键字参数 keepdimssum 方法。

示例

>>> import maxframe.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])