Python numpy.nanvar()
numpy.nanvar(arr, axis = None) :计算给定数据(数组元素)沿指定轴(如果有的话)的方差,同时忽略NaN值。
示例 :
x = 1 1 1 1 1
标准偏差 = 0 .方差 = 0
y = 9, 2, 5, 4, 12, 7, 8, 11, 9, 3, 7, 4, 12, 5, 4, 10, 9, 6, 9, 4
第1步:分布的平均值4=7
第2步 : (x – x.mean())**2的总和=178
第3步:求平均值=178/20=8.9
这个结果就是差异。
参数 :
arr : [array_like] 输入数组。
axis : [int or tuples of int]轴,我们想沿着这个轴计算方差。否则,它将认为arr是平坦的(对所有的轴都有效)。axis = 0意味着沿列的方差,axis = 1意味着沿行的方差。
out : [ndarray, optional]不同的数组,我们想把结果放在其中。该数组必须具有与预期输出相同的尺寸。
dtype : [data-type, optional]我们在计算方差时希望的类型。
Results :数组的方差(如果轴没有,则为标量值)或者数组中沿指定轴的方差值;同时忽略NaN值。
代码 #1:
# Python Program illustrating
# numpy.nanvar() method
import numpy as np
# 1D array
arr = [20, 2, np.nan, 1, 34]
print("arr : ", arr)
print("\nnanvar of arr : ", np.nanvar(arr))
print("var of arr : ", np.var(arr))
print("\nnanvar of arr : ", np.nanvar(arr, dtype = np.float32))
print("var of arr : ", np.var(arr, dtype = np.float32))
输出 :
arr : [20, 2, nan, 1, 34]
nanvar of arr : 187.1875
var of arr : nan
nanvar of arr : 187.1875
var of arr : nan
代码 #2:
# Python Program illustrating
# numpy.nanvar() method
import numpy as np
# 2D array
arr = [[2, 2, 2, 2, 2],
[15, 6, np.nan, 8, 2],
[23, 2, 54, 1, 2, ],
[np.nan, 44, 34, 7, 2]]
# nanvar of the flattened array
print("\nnanvar of arr, axis = None : ", np.nanvar(arr))
print("\nvar of arr, axis = None : ", np.var(arr))
# nanvar along the axis = 0
print("\nnanvar of arr, axis = 0 : \n", np.nanvar(arr, axis = 0))
print("\nvar of arr, axis = 0 : ", np.var(arr, axis = 0))
# nanvar along the axis = 1
print("\nnanvar of arr, axis = 1 : ", np.nanvar(arr, axis = 1))
输出 :
nanvar of arr, axis = None : 249.88888888888889
var of arr, axis = None : nan
nanvar of arr, axis = 0 :
[ 74.88888889 312.75 458.66666667 9.25 0. ]
var of arr, axis = 0 : [ nan 312.75 nan 9.25 0. ]
nanvar of arr, axis = 1 : [ 0. 22.1875 421.84 313.1875]