일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- GIT
- Excel
- SQL
- django
- gas
- string
- Kotlin
- numpy
- Mac
- matplotlib
- Apache
- math
- Java
- Python
- PostgreSQL
- c#
- Google Excel
- 파이썬
- PANDAS
- array
- google apps script
- Github
- Tkinter
- dataframe
- Redshift
- hive
- list
- PySpark
- Google Spreadsheet
- Today
- Total
달나라 노트
Python numpy : percentile (백분위수), quantile (사분위수) 본문
Python numpy : percentile (백분위수), quantile (사분위수)
CosmosProject 2024. 3. 25. 23:04
numpy의 percentile() method는 어떠한 값들을 기준으로 백분위를 구하고
그 값들 사이에서의 백분위수를 return해주는 기능을 합니다.
(백분위에 대한 개념을 알고 싶으면 아래 글을 참조하면 좋습니다.)
https://cosmosproject.tistory.com/826
Syntax
numpy.percentile(
a=array,
q=percentile_rank # percentile rank (0 ~ 100)
)
- a
기준되는 값들이 담긴 array, list 형태의 데이터를 의미합니다.
- q
백분위 기준 몇%에 있는 백분위수를 추출할건지를 의미합니다.
0 이상 100 이하의 숫자이며 0은 0%를 100은 100%를 의미합니다.
import numpy as np
list_test = [
10,
20,
30,
40,
50,
60,
70,
80,
90,
100,
110
]
print(np.percentile(a=list_test, q=50))
-- Result
60.0
10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110의 값들에 대해 (a=list_test)
백분위 50%(q=50) 위치에 있는 백분위수는 60입니다.
따라서 60이 return됩니다.
아래 표를 참고하면 됩니다.
import numpy as np
list_test = [
10,
20,
30,
40,
50,
60,
70,
80,
90,
100,
110
]
print(np.percentile(a=list_test, q=15))
-- Result
25.0
10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110의 값들에 대해 (a=list_test)
백분위 15%(q=15) 위치에 있는 백분위수는 25입니다.
따라서 25가 return됩니다.
import numpy as np
list_test = [
10,
20,
30,
40,
50,
60,
70,
80,
90,
100,
110
]
print('0사분위수 =', np.percentile(a=list_test, q=0))
print('1사분위수 =', np.percentile(a=list_test, q=25))
print('2사분위수 =', np.percentile(a=list_test, q=50))
print('3사분위수 =', np.percentile(a=list_test, q=75))
print('4사분위수 =', np.percentile(a=list_test, q=100))
-- Result
0사분위수 = 10.0
1사분위수 = 35.0
2사분위수 = 60.0
3사분위수 = 85.0
4사분위수 = 110.0
또한 q값을 조절하면 위처럼 0~4사분위수도 구할 수 있습니다.
Syntax
numpy.quantile(
a=array,
q=percentile_rank # percentile rank (0 ~ 1)
)
quantile() method는 사분위수를 구해줍니다.
percentile() method와 상당히 비슷한 사용법과 기능을 가집니다.
단, 주의할 점은 q값이 0 이상 100 이하의 값이 아니라 0 이상 1 이하의 값을 받는다는 것입니다.
q = 0은 0%를 의미하고
q = 1은 100%를 의미합니다.
import numpy as np
list_test = [
10,
20,
30,
40,
50,
60,
70,
80,
90,
100,
110
]
print('0사분위수 =', np.percentile(a=list_test, q=0))
print('1사분위수 =', np.percentile(a=list_test, q=25))
print('2사분위수 =', np.percentile(a=list_test, q=50))
print('3사분위수 =', np.percentile(a=list_test, q=75))
print('4사분위수 =', np.percentile(a=list_test, q=100))
print('0사분위수 =', np.quantile(a=list_test, q=0))
print('1사분위수 =', np.quantile(a=list_test, q=0.25))
print('2사분위수 =', np.quantile(a=list_test, q=0.5))
print('3사분위수 =', np.quantile(a=list_test, q=0.75))
print('4사분위수 =', np.quantile(a=list_test, q=1))
-- Result
0사분위수 = 10.0
1사분위수 = 35.0
2사분위수 = 60.0
3사분위수 = 85.0
4사분위수 = 110.0
0사분위수 = 10
1사분위수 = 35.0
2사분위수 = 60.0
3사분위수 = 85.0
4사분위수 = 110
위처럼 사분위수를 구할 수 있습니다.
import numpy as np
list_test = [
10,
20,
30,
40,
50,
60,
70,
80,
90,
100,
110
]
print(np.quantile(a=list_test, q=0.1))
print(np.quantile(a=list_test, q=0.2))
-- Result
20.0
30.0
위처럼 quantile() method로도 q값을 조절하면 사분위수 뿐 아니라 다양한 백분위에 위치하는 값을 구할 수 있습니다.
'Python > Python numpy' 카테고리의 다른 글
Python numpy : power (거듭제곱) (0) | 2024.03.29 |
---|---|
Python numpy : ones (1로 채워진 array 생성) (0) | 2024.03.07 |
Python numpy : clip (최대/최소값 제한하기) (0) | 2022.03.22 |
Python numpy : zeros_like (같은 크기의 0으로 채워진 행렬 생성, 같은 크기의 행렬 생성) (0) | 2022.03.22 |
Python numpy : pad (array 테두리 데이터 추가. array 테두리 추가) (0) | 2022.03.22 |