우선 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 |
---|