Python 배열(리스트)와 Numpy 배열의 차이?

|

개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.


NumPy 배열 vs Python 배열

가장 중점적으로 봐야하는건

  1. Python은 하나의 배열안에 다양한 타입의 요소들을 담을 수 있지만, NumPy는 하나의 배열안에 동일한 타입만을 넣을 수 있다.
  2. Python의 연산 과정은 for문을 돌려야하는 번거로움이 있지만 NumPy는 벡터화 연산이 가능. 이는 곧 반복문 없이 그냥 가능함을 의미한다.

첫번째 설명의 간단한 예시는 아래와 같다.

# Python list > 숫자, 문자열, 소수, 리스트 등을 하나의 배열안에 담을 수 있다.
mixed_list = [1, 'hello', 0.1, [0, 1]]

# NumPy Array > 하나의 배열안에 타입을 강제로 맞춤 
mixed_array = [1, 0,1, 5]
print(mixed_array) # > [1. 0.1 5.] 으로 반환함 

두번째 설명의 간단한 예시는 아래와 같다.

list1 = [1,2,3,4,5]
list2 = [10, 20, 30, 40, 50]

print(list1 + list2)  # > [1,2,3,4,5,10,20,30,40,50]

# 실제 각 요소끼리의 합을 구하기 위해서는 
list_sum = []

for i in len(list1):
    list_sum.append(list1[i] + list2[i])
print(list_sum)

하지만 NumPy에서는 다르다.

arr1 = np.array(list1)
arr2 = np.array(list2)

print(arr1+arr2)

엄청 간단하다..ㅎ!