개발학습일지

[Python] 넘파이 1차원 , 2차원 배열 연산과 브로드캐스팅 본문

Python/Numpy

[Python] 넘파이 1차원 , 2차원 배열 연산과 브로드캐스팅

처카푸 2024. 4. 7. 17:05

1차원 배열의 연산

data = [10, 20, 5, 8, 10, 33, 56, 9, 11, 45, 87, 9, 22, 548, 362, 92]

data 의 모든 정보에 +5 를 해라

- 넘파이가 아닌 기본 data 리스트를 사용한  1차원 배열 연산

new_data = [ ]  # 새로운 리스트 생성
for item in data : # 데이터 안에서 하나씩 꺼내서 저장할 item 변수 생성
    new_data.append(item+5) # item 변수에 +5를 하고 새로운 리스트에 더한 값을 넣어라
new_data
# [15, 25, 10, 13, 15, 38, 61, 14, 16, 50, 92, 14, 27, 553, 367, 97]

- 넘파이가 아닌 기본 data 리스트를 사용한 리스트 컴프레이션

new_data = [ item+5 for item in data ]
new_data
# [15, 25, 10, 13, 15, 38, 61, 14, 16, 50, 92, 14, 27, 553, 367, 97]

 

기본 data 리스트를 NumPy 로 바꿔서 연산 

- 각 요소마다 연산이 수행되는 브로드캐스팅

- 어레이 리스트에 +5 연산만 해주면 알아서 계산 된다

np.array(data)
# array([ 10,  20,   5,   8,  10,  33,  56,   9,  11,  45,  87,   9,  22, 548, 362,  92])
np.array(data) + 5
# array([ 15,  25,  10,  13,  15,  38,  61,  14,  16,  50,  92,  14,  27, 553, 367,  97])

 

NumPy 2차원 배열의 연산

- 모든 배열에 바로 모든 연산 가능하다!!

X
# array([[ 9, 25, 68, 88, 80],
       # [49, 11, 95, 53, 99],
       # [54, 67, 99, 15, 35],
       # [25, 16, 61, 59, 17]])
X + 5
# array([[ 14,  30,  73,  93,  85],
       # [ 54,  16, 100,  58, 104],
       # [ 59,  72, 104,  20,  40],
       # [ 30,  21,  66,  64,  22]])
X * 10
# array([[ 90, 250, 680, 880, 800],
       # [490, 110, 950, 530, 990],
       # [540, 670, 990, 150, 350],
       # [250, 160, 610, 590, 170]])