반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- dataframe
- Java
- Google Excel
- Redshift
- Google Spreadsheet
- 파이썬
- c#
- PANDAS
- string
- math
- PostgreSQL
- GIT
- Github
- hive
- Tkinter
- Apache
- list
- Kotlin
- Excel
- django
- array
- matplotlib
- Python
- numpy
- PySpark
- SQL
- google apps script
- Mac
- gas
Archives
- Today
- Total
달나라 노트
Python numpy : minimum() / maximum() — 두 array를 element-wise로 비교해 작은/큰 값을 선택하는 메서드 본문
Python/Python numpy
Python numpy : minimum() / maximum() — 두 array를 element-wise로 비교해 작은/큰 값을 선택하는 메서드
CosmosProject 2026. 5. 14. 20:21728x90
반응형
NumPy minimum() / maximum() — 두 array를 element-wise로 비교해 작은/큰 값을 선택하는 메서드
두 array의 같은 위치 값을 비교해서, 더 작은(또는 큰) 값만 골라 새 array를 만듭니다.
기본 문법
numpy.minimum(x1, x2) # 각 위치에서 더 작은 값 선택
numpy.maximum(x1, x2) # 각 위치에서 더 큰 값 선택
np.min() vs np.minimum() — 헷갈리기 쉬운 차이
이름이 비슷하지만 완전히 다릅니다.
arr = np.array([3, 1, 4, 1, 5])
np.min(arr) # 1 ← array 전체에서 최솟값 하나 반환
np.minimum(arr, 3) # array([3, 1, 3, 1, 3]) ← 각 위치를 3과 비교
np.min(arr) |
np.minimum(x1, x2) |
|
|---|---|---|
| 입력 | array 1개 | array 2개 (또는 array + scalar) |
| 출력 | 스칼라 값 1개 | array |
| 역할 | 전체 최솟값 찾기 | element-wise 비교 |
예시 1 — 두 array 비교
import numpy as np
a = np.array([1, 5, 3, 8, 2])
b = np.array([4, 2, 6, 1, 7])
np.minimum(a, b)
# array([1, 2, 3, 1, 2])
# min(1,4) min(5,2) min(3,6) min(8,1) min(2,7)
np.maximum(a, b)
# array([4, 5, 6, 8, 7])
# max(1,4) max(5,2) max(3,6) max(8,1) max(2,7)
예시 2 — scalar와 비교 (상한/하한 설정)
arr = np.array([-3, 5, -1, 8, 2])
np.maximum(arr, 0) # 하한 0 설정 (음수 제거)
# array([0, 5, 0, 8, 2])
np.minimum(arr, 5) # 상한 5 설정
# array([-3, 5, -1, 5, 2])
np.clip()과의 관계
상한과 하한을 동시에 설정할 때 clip()이 더 간결하지만, 내부적으로 minimum과 maximum의 조합입니다.
arr = np.array([-3, 5, -1, 8, 2])
# 아래 두 코드는 같은 결과
np.clip(arr, 0, 5)
np.minimum(np.maximum(arr, 0), 5)
# array([0, 5, 0, 5, 2])
NaN 처리
np.minimum / np.maximum은 NaN이 있으면 결과도 NaN이 됩니다. NaN을 무시하려면 np.fmin / np.fmax를 씁니다.
a = np.array([1, np.nan, 3])
b = np.array([2, 2, 1])
np.minimum(a, b)
# array([ 1., nan, 1.]) ← NaN이 있으면 결과도 NaN
np.fmin(a, b)
# array([1., 2., 1.]) ← NaN 무시하고 다른 값 선택
np.fmin() / np.fmax() — NaN을 무시하는 버전
np.minimum / np.maximum과 동작이 같지만, NaN을 결측값으로 취급해서 무시합니다.
a = np.array([1, np.nan, 3, np.nan])
b = np.array([2, 2, 1, np.nan])
np.minimum(a, b)
# array([ 1., nan, 1., nan]) ← NaN이 하나라도 있으면 결과도 NaN
np.fmin(a, b)
# array([ 1., 2., 1., nan]) ← 한쪽만 NaN이면 다른 값 선택
# ↑ 둘 다 NaN이면 그때만 NaN
NaN 처리 규칙: 한쪽만 NaN → NaN이 아닌 값 선택 / 둘 다 NaN → NaN 반환
데이터에 결측값이 섞여 있을 때, NaN 때문에 비교 결과 전체가 오염되는 걸 막고 싶을 때 씁니다.
# 센서 데이터 — 일부 측정값이 누락(NaN)된 상황
sensor_a = np.array([23.1, np.nan, 19.8, 21.0])
sensor_b = np.array([22.0, 20.5, np.nan, 21.5])
# 두 센서 중 낮은 값을 기록하되, 한쪽이 누락이면 다른 쪽 값 사용
np.fmin(sensor_a, sensor_b)
# array([22. , 20.5, 19.8, 21. ])
np.minimum |
np.fmin |
|
|---|---|---|
| 한쪽 NaN | NaN 반환 | 다른 값 반환 |
| 둘 다 NaN | NaN 반환 | NaN 반환 |
| 용도 | NaN 전파가 필요할 때 | NaN을 무시하고 싶을 때 |
728x90
반응형
'Python > Python numpy' 카테고리의 다른 글
| Python numpy : where() — 조건에 따라 두 값 중 하나를 선택하는 메서드 (0) | 2026.05.14 |
|---|---|
| Python numpy : polyfit() — 점들의 패턴에 가장 잘 맞는 다항식 계수를 추정하는 메서드 (0) | 2026.05.14 |
| Python numpy : select (여러 조건을 한 번에 처리하는 메서드) (0) | 2026.05.14 |
| Python numpy : argmax, argmin (최대값의 index, 최소값의 index) (0) | 2025.11.08 |
| Python numpy : power (거듭제곱) (0) | 2024.03.29 |
Comments
