numpy - 비교연산자를 이용하여 array 원소값 바꾸기(np.where)

안녕하세요 jay입니다.
지난 시간은 numpy의 boolean indexing에 대해 알아보았습니다.
이번 시간은 >, <, = 등과 같은 비교연산자를 이용하여
numpy array 원소값들을 바꿔보겠습니다.



data의 원소값들 을 data > 7 과 같은 비교문을 써서
원소 값들을 7로 바꿨습니다.
np.where을 사용하면 더 간단하게 조건을 넣을 수 있습니다.


import numpy as np

# 0~11 값을 얻고 이를 3x4 모양의 배열로 재구성한다
data = np.arange(12).reshape(3,4)
print(data)

#[[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]]

# 배열의 모든 항목에 대해 7 보다 큰 값을 모두 7로 교체하는 방법
data[data > 7] = 7
print(data)

# [[0 1 2 3]
#  [4 5 6 7]
#  [7 7 7 7]]

# 조건에 따라 값을 다르게 선택하는 예
# np.where 를 사용한다
# 아래는 5보다 크면 6으로 바꾸고 5보다 작으면 모두 3으로 바꾼다
print(np.where(data>5, 6, 3))

# [[3 3 3 3]
#  [3 3 6 6]
#  [6 6 6 6]]


댓글