Programming

파이썬 논리연산자 AND·OR·NOT 완전 정리 + NumPy 논리 연산 활용법

Lucas.Kim 2025. 12. 8. 10:10
반응형

파이썬(Python)에서 조건문을 작성할 때 가장 핵심이 되는 요소가 논리연산자(and, or, not) 입니다.
조건을 조합하거나 데이터를 비교할 때 반드시 사용되며, 특히 데이터 분석에서는 NumPy 배열을 대상으로 논리연산을 수행하는 경우가 많습니다.
본 글에서는 기본 논리연산자 설명부터, 실제 예제 코드, NumPy의 logical_and / logical_or 활용법까지 실전 중심으로 정리합니다.

1. 파이썬 기본 논리연산자: AND, OR, NOT

파이썬에서 조건 조합에 사용되는 기본 논리연산자는 다음과 같습니다.

AND

두 조건이 모두 True일 때만 True가 됩니다.

OR

두 조건 중 하나라도 True이면 전체 결과가 True가 됩니다.

NOT

조건의 논리값을 반대로 뒤집습니다. True → False, False → True

아래는 예제 코드입니다.

# Define variables
my_kitchen = 18.0
your_kitchen = 14.0

# my_kitchen bigger than 10 and smaller than 18?
print(my_kitchen >= 10 and my_kitchen <= 18)

# my_kitchen smaller than 14 or bigger than 17?
print(my_kitchen <= 14 or my_kitchen >= 17)

# Double my_kitchen smaller than triple your_kitchen?
print(2 * my_kitchen <= 3 * your_kitchen)

코드 설명

(1) my_kitchen >= 10 and my_kitchen <= 18

 

  • 18.0은 10 이상이므로 True
  • 동시에 18 이하이므로 True
  • 두 조건 모두 충족 ⇒ True

 

(2) my_kitchen <= 14 or my_kitchen >= 17

 

  • 첫 조건은 False
  • 두 번째 조건은 True
  • OR 연산이므로 하나라도 True이면 전체 True

 

(3) 2*my_kitchen <= 3*your_kitchen

 

  • 2*18 = 36
  • 3*14 = 42
  • 36 <= 42 이므로 True

이처럼 비교 연산 + 논리연산을 조합하면 다양한 조건 판단이 가능합니다.

 

2. NumPy 배열에서의 논리 연산

일반 파이썬 변수는 논리연산자(and, or)를 사용할 수 있지만, NumPy 배열(array) 에서는 and/or를 직접 사용할 수 없습니다.
대신 NumPy가 제공하는 논리 연산 함수들을 사용해야 합니다.

대표 함수는 다음과 같습니다.

  • np.logical_and(condition1, condition2)
  • np.logical_or(condition1, condition2)
  • np.logical_not(condition)

예제 코드

import numpy as np

# Create arrays
my_house = np.array([18.0, 20.0, 10.75, 9.50])
your_house = np.array([14.0, 24.0, 14.25, 9.0])

# my_house greater than 18.5 or smaller than 10
print(np.logical_or(my_house > 18.5, my_house < 10))

# Both my_house and your_house smaller than 11
print(np.logical_and(my_house < 11, your_house < 11))

 

 

출력 및 개념 설명

np.logical_or(my_house > 18.5, my_house < 10)

각 요소별로 조건을 비교합니다.

  • 18.0 → 18.5보다 작지만 10보다 큼 → False
  • 20.0 → 18.5보다 큼 → True
  • 10.75 → 둘 다 해당 없음 → False
  • 9.50 → 10보다 작음 → True

결과: [False True False True]

np.logical_and(my_house < 11, your_house < 11)

각 배열의 같은 위치 요소끼리 비교합니다.

  • my 10.75 < 11 AND your 14.25 < 11 → False
  • my 9.50 < 11 AND your 9.0 < 11 → True

최종 결과: [False False False True]

NumPy의 논리 연산은 조건 기반 필터링, 데이터 분석, 머신러닝 전처리에서 매우 자주 등장하는 핵심 기능입니다.

 

파이썬에서 논리연산자(and, or, not)는 조건문 작성의 기본이며, 복잡한 판단 로직을 만들 때 필수적입니다.
또한 NumPy 배열에서는 일반 논리연산자를 사용할 수 없기 때문에 np.logical_and, np.logical_or 같은 전용 함수를 반드시 사용해야 합니다.
기본 변수 비교부터 배열 데이터 분석까지 논리 연산은 모든 파이썬 개발자와 데이터 분석가에게 필요한 필수 문법입니다.

반응형