본문 바로가기

데이터 과학/데이터 과학

np.percentile 사용법

numpy.percentile(v, q) 은 q번째 퍼센트의 데이터를 계산한다. 다시 말해 백분위 q에 위치한 값을 계산한다. 

길이가 n이 벡터 v가 주어지면, v의 q번째 백분위 수는 v의 정렬된 복사본에서 최소값 ~ 최대값 q/100 이다.

 

정규화된 순위가 q의 위치와 정확히 일치하지 않는다면, 두개의 가장 가까운 이웃 값과의 거리가 백분위 값이 된다.

 

a = np.array([[10, 7, 4], [3, 2, 1]])
>>> a
array([[10,  7,  4],
       [ 3,  2,  1]])
       
>>> np.percentile(a, 50)
3.5

>>> np.percentile(a, 50, axis=0)
array([6.5, 4.5, 2.5])

>>> np.percentile(a, 50, axis=1)
array([7.,  2.])

>>> np.percentile(a, 50, axis=1, keepdims=True)
array([[7.],
       [2.]])

 

# 2D array
arr = [[14, 17, 12, 33, 44], 
       [15, 6, 27, 8, 19],
       [23, 2, 54, 1, 4,]]
    
# Percentile of the flattened array
print("\n50th Percentile of arr, axis = None : ",
      np.percentile(arr, 50))
>>> 50th Percentile of arr, axis = None :  15.0

print("0th Percentile of arr, axis = None : ",
      np.percentile(arr, 0))
>>> 0th Percentile of arr, axis = None :  1.0

# Percentile along the axis = 0
print("\n50th Percentile of arr, axis = 0 : ",
      np.percentile(arr, 50, axis =0))
>>> 50th Percentile of arr, axis = 0 :  [15.  6. 27.  8. 19.]
      
print("0th Percentile of arr, axis = 0 : ",
      np.percentile(arr, 0, axis =0))
>>> 0th Percentile of arr, axis = 0 :  [14.  2. 12.  1.  4.]

# Percentile along the axis = 1
print("\n50th Percentile of arr, axis = 1 : ",
      np.percentile(arr, 50, axis =1))
>>> 50th Percentile of arr, axis = 0 :   [17. 15.  4.]
      
print("0th Percentile of arr, axis = 1 : ",
      np.percentile(arr, 0, axis =1))
>>> 0th Percentile of arr, axis = 0 :  [12.  6.  1.]

print("50th Percentile of arr, axis = 1 : \n",
      np.percentile(arr, 50, axis =1, keepdims=True))
>>> 50th Percentile of arr, axis = 1 : 
 [[17.]
 [15.]
 [ 4.]]
 
print("0th Percentile of arr, axis = 1 : \n",
      np.percentile(arr, 0, axis =1, keepdims=True))
>>> 0th Percentile of arr, axis = 1 : 
 [[12.]
 [ 6.]
 [ 1.]]

 

https://numpy.org/doc/stable/reference/generated/numpy.percentile.html

 

numpy.percentile — NumPy v1.24 Manual

[1] (1,2,3,4,5,6,7,8,9,10) R. J. Hyndman and Y. Fan, “Sample quantiles in statistical packages,” The American Statistician, 50(4), pp. 361-365, 1996

numpy.org

 

반응형