본문 바로가기

AI/programming

[numpy] numpy array와 list의 차이

 

 

우선 list는 우리가 알고 있는 파이썬의 배열의 역할

 

numpy array는 넘파이 라이브러리에서 제공되는 array이다

 

numpy array는 벡터와 같다. 그래서 선형대수에서 나오는 벡터 연산이 똑같이 적용된다. 

 

import numpy as np

list = [1,2,3,4]
list2 = [1,2,3,4]


print(list + list2) # [1,2,3,4,1,2,3,4]


array1 = np.array([1,2,3,4])
array2 = np.array([1,2,3,4])

print(array1+array2) # [2,4,6,8]

 

바로 예시를 적용해보면 이해가 쉽다

 

list에서 + 연산은 두 개의 list가 이어지는데 

 

numpy array는 element-wise (원소들 끼리의 연산)으로 연산이 이루어진다.

 

import numpy as np

list = [3,4,5,6]

print(list*2) # [3,4,5,6,3,4,5,6]

array1 = np.array([3,4,5,6])

print(array1 * 2) # [6,8,10,12]

 

우선 list에서는 뺄셈이나 곱셈 연산은 오류가 난다 (numpy array는 가능하다. 벡터로 생각하면 이해가 빠르다)

 

하지만 위 예시처럼 스칼라값을 곱할때에는 연산이 가능한데 list는 스칼라곱 만큼 반복해서 리스트를 이어준다.

 

array1은 각각의 원소에 스칼라곱을 해준 결과가 나오게 된다.

 

또한 list에서는 [[1],[2,3],[3,4,5]] 와 같은 배열이 만들어 질 수 있지만, numpy array에서는 저런 형태의 배열은 만들어 질 수 없다. (선형대수의 행렬에서도 저렇게 생긴 행렬은 존재하지 않는다.)

'AI > programming' 카테고리의 다른 글

[numpy] Broadcasting  (0) 2024.06.07