sciPy stats . nantd()函数| Python

原文:https://www . geesforgeks . org/scipy-stats-nantd-function-python/

**scipy.stats.nanstd(array, axis=0)**函数通过忽略沿数组指定轴的数组元素的 Nan(不是数字)值来计算标准差。

是公式–

参数: 数组:输入数组或对象所具有的元素,包括 Nan 值,来计算标准差。 轴:计算标准偏差的轴。默认情况下,轴= 0

根据设定的参数返回:数组元素的标准差(忽略 Nan 值)。

代码#1:

# standard deviation 
import scipy
import numpy as np

arr1 = [1, 3, np.nan, 27] 

print("standard deviation using nanstd :", scipy.nanstd(arr1))

print("standard deviation without handling nan value :", scipy.std(arr1)) 

输出:

standard deviation using nanstd : 11.813363431112899
standard deviation without handling nan value : nan

代码#2: 多维数据

# standard deviation 
from scipy import std
from scipy import nanstd
import numpy as np

arr1 = [[1, 3, 27], 
        [3, np.nan, 6], 
        [np.nan, 6, 3], 
        [3, 6, np.nan]] 

print("standard deviation is :", std(arr1)) 
print("standard deviation handling nan :", nanstd(arr1)) 

# using axis = 0
print("\nstandard deviation is with default axis = 0 : \n", 
      std(arr1, axis = 0))
print("\nstandard deviation handling nan with default axis = 0 : \n", 
      nanstd(arr1, axis = 0))

# using axis = 1
print("\nstandard deviation is with default axis = 1 : \n", 
      std(arr1, axis = 1))  
print("\nstandard deviation handling nan with default axis = 1 : \n", 
      nanstd(arr1, axis = 1))  

输出:

standard deviation is : nan
standard deviation handling nan : 7.455216087651669

standard deviation is with default axis =0 : 
 [nan nan nan]

standard deviation handling nan with default axis =0 : 
 [ 0.94280904  1.41421356 10.67707825]

standard deviation is with default axis =1 : 
 [11.81336343         nan         nan         nan]

standard deviation handling nan with default axis =1 : 
 [11.81336343  1.5         1.5         1.5       ]