NumPy 函数

NumPy var() 函数用于计算沿指定轴的方差。方差是分布分布的度量。默认情况下,计算展平数组的方差,否则在指定轴上计算方差。

语法

numpy.var(a, axis=None, dtype=None, out=None, keepdims=<no value>) 

参数

a必填。 指定输入数组。
axis可选。 指定计算方差的一个或多个轴。默认值 axis=None,计算展平数组的方差。
dtype可选。 指定计算方差时使用的类型。对于整数类型的数组,默认为 float64,对于浮点类型的数组,它与数组类型相同。
out可选。 指定放置结果的输出数组。它必须具有与预期输出相同的形状。
keepdims可选。 如果将此设置为 True,则缩小的轴将作为大小为 1 的维度保留在结果中。使用此选项,结果将针对输入数组正确广播。

返回值

如果out=None,返回包含方差的数组,否则返回对输出数组的引用。

示例:展平数组的方差

在下面的示例中,使用了 var() 函数计算数组中存在的所有值的方差。

import numpy as np
Arr = np.array([[1,2],[3, 4]])

print("Array is:")
print(Arr)

#所有值的方差
print("\nVariance of all values:", np.var(Arr)) 

上述代码的输出将是:

Array is:
[[1 2]
 [3 4]]

Variance of all values: 1.25 

示例:带有轴参数的 var()

当提供 axis 参数时,将计算指定轴上的方差,如下例所示。

import numpy as np
Arr = np.array([[10,20,30],[70,80,90]])

print("Array is:")
print(Arr)

#沿轴的方差=0
print("\n沿轴的方差=0")
print(np.var(Arr, axis=0))

#沿轴的方差=1
print("\n沿轴的方差=1")
print(np.var(Arr, axis=1)) 

上述代码的输出将是:

Array is:
[[10 20 30]
 [70 80 90]]

沿轴的方差=0
[900. 900. 900.]

沿轴的方差=1
[66.66666667 66.66666667] 

示例:带有 dtype 参数的 var()

计算 float64 中的方差可提供更准确的结果。考虑以下示例。

import numpy as np
Arr = np.array([1, 10, 100, 1000])

#使用 float32 的方差
print("使用 float32 的方差:", np.var(Arr, dtype=np.float32))

#variance 使用 float64
print("使用 float64 的方差:", np.var(Arr, dtype=np.float64)) 

上述代码的输出将是:

使用 float32 的方差: 175380.19
使用 float64 的方差: 175380.1875