본문 바로가기
판다스/판다스에 유용한 넘파이 함수들

[numpy] np.fmax와 np.fmin 함수를 이용해 배열 비교

by 김판다t 2024. 10. 26.

넘파이의 np.fmax와 np.fmin 함수를 이용해 배열 비교

 

넘파이의 np.fmax와 np.fmin 함수는 두 배열을 비교하여 각 위치에서 더 큰 값이나 더 작은 값을 반환하는 유용한 함수입니다. 물론 불리언 마스킹으로도 구현할 수 있지만, 불리언 마스킹에 비해 더 간결한 코드로 수행할 수 있습니다. 이해를 돕기 위해 간단한 예시를 살펴보겠습니다.

 

예시
import pandas as pd
# 예시 데이터 프레임 생성
data = {'반': ['A', 'B', 'B', 'A', 'A'], 
        '국어': [81, 96, 83, 66, 84], 
        '영어': [54, 42, 31, 68, 69]}
df = pd.DataFrame(data)

 

예시 데이터 프레임 df에서 영어 점수에 30점을 가산한 후, 국어 점수와 비교하여 더 높은 점수를 반환해 보겠습니다. 이 작업은 불리언 마스킹으로도 가능하지만, np.fmax를 사용하면 훨씬 더 간결하게 수행할 수 있습니다. np.fmax 함수는 두 개의 배열을 비교하여 각 위치에서 더 큰 값을 반환합니다.

 

# 영어에 가산점 30을 주고 국어 점수와 비교해 높은 점수 반환
np.fmax(df['국어'], df['영어'] + 30)
 

위 코드는 간편하게 국어 점수와 영어 점수에 30점을 더한 값 중 큰 값을 반환합니다. 데이터 프레임 내에서 열 간의 비교를 수행할 때는 집계 함수를 사용할 수도 있지만, 하나의 데이터 프레임에 속하지 않는 배열 간의 비교가 필요한 경우 np.fmax를 사용하는 것이 더욱 간편합니다.

 

np.fmin 함수는 np.fmax와 반대로, 두 개의 배열을 비교하여 각 위치에서 더 작은 값을 반환합니다. 예를 들어, 국어 점수와 영어 점수에 가산점 30점을 더한 값 중 더 낮은 값을 선택하려면 다음과 같이 코드를 작성할 수 있습니다.

# 영어에 가산점 30을 주고 국어 점수와 비교해 낮은 점수 반환
np.fmin(df['국어'], df['영어'] + 30)
 

 

np.fmax 공식 문서, np.fmin 공식 문서


 

유튜브에서 판다스 강의 중입니다.

https://www.youtube.com/@KimPandas