Python numpy.nanquantile()
numpy.nanquantile(arr, q, axis = None) :计算给定数据(数组元素)沿指定轴的q th quantile,忽略nan值。当人们处理正态分布时,量化在统计学中起着非常重要的作用。
在上图中,Q2是正态分布数据的中位数。Q3-Q2代表给定数据集的**四分位数范围。
参数 :
arr : [array_like]输入阵列。
q :量化值。
axis : [int or tuples of int]轴,我们想沿着这个轴计算量化值。axis = 0表示沿列工作, axis = 1表示沿行工作。
输出: [ndarray, optional]不同的数组,我们想把结果放在其中。该数组必须具有与预期输出相同的尺寸。
Results : 数组的第3个四分位数(如果轴为零,则为标量值)或数组中沿指定轴的四分位值,忽略nan值。
代码#1:
# Python Program illustrating
# numpy.nanquantile() method
import numpy as np
# 1D array
arr = [20, 2, 7, np.nan, 34]
print("arr : ", arr)
print("\n-Q1 quantile of arr : ", np.quantile(arr, .50))
print("Q2 - quantile of arr : ", np.quantile(arr, .25))
print("Q3 - quantile of arr : ", np.quantile(arr, .75))
print("\nQ1 - nanquantile of arr : ", np.nanquantile(arr, .50))
print("Q2 - nanquantile of arr : ", np.nanquantile(arr, .25))
print("Q3 - nanquantile of arr : ", np.nanquantile(arr, .75))
输出 :
arr : [20, 2, 7, nan, 34]
Q1 - quantile of arr : nan
Q2 - quantile of arr : nan
Q3 - quantile of arr : nan
Q1 - nanquantile of arr : 13.5
Q2 - nanquantile of arr : 5.75
Q3 - nanquantile of arr : 23.5
代码 #2:
# Python Program illustrating
# numpy.nanquantile() method
import numpy as np
# 2D array
arr = [[14, np.nan, 12, 33, 44],
[15, np.nan, 27, 8, 19],
[23, 2, np.nan, 1, 4, ]]
print("\narr : \n", arr)
# quantile of the flattened array
print("\nQ2 quantile of arr, axis = None : ", np.quantile(arr, .50))
print("\nQ2 quantile of arr, axis = None : ", np.nanquantile(arr, .50))
print("0th quantile of arr, axis = None : ", np.nanquantile(arr, 0))
输出:
arr :
[[14, nan, 12, 33, 44], [15, nan, 27, 8, 19], [23, 2, nan, 1, 4]]
Q2 quantile of arr, axis = None : nan
Q2 quantile of arr, axis = None : 14.5
0th quantile of arr, axis = None : 1.0
代码 #3:
# Python Program illustrating
# numpy.nanquantile() method
import numpy as np
# 2D array
arr = [[14, np.nan, 12, 33, 44],
[15, np.nan, 27, 8, 19],
[23, 2, np.nan, 1, 4, ]]
print("\narr : \n", arr)
# quantile along the axis = 0
print("\nQ2 quantile of arr, axis = 0 : ", np.nanquantile(arr, .50, axis = 0))
print("0th quantile of arr, axis = 0 : ", np.nanquantile(arr, 0, axis = 0))
# quantile along the axis = 1
print("\nQ2 quantile of arr, axis = 1 : ", np.nanquantile(arr, .50, axis = 1))
print("0th quantile of arr, axis = 1 : ", np.nanquantile(arr, 0, axis = 1))
print("\nQ2 quantile of arr, axis = 1 : \n",
np.nanquantile(arr, .50, axis = 1, keepdims = True))
print("\n0th quantile of arr, axis = 1 : \n",
np.nanquantile(arr, 0, axis = 1, keepdims = True))
输出:
arr :
[[14, nan, 12, 33, 44], [15, nan, 27, 8, 19], [23, 2, nan, 1, 4]]
Q2 quantile of arr, axis = 0 : [15. 2. 19.5 8. 19. ]
0th quantile of arr, axis = 0 : [14. 2. 12. 1. 4.]
Q2 quantile of arr, axis = 1 : [23.5 17. 3. ]
0th quantile of arr, axis = 1 : [12. 8. 1.]
Q2 quantile of arr, axis = 1 :
[[23.5]
[17. ]
[ 3. ]]
0th quantile of arr, axis = 1 :
[[12.]
[ 8.]
[ 1.]]