Part 3. Python Basics for AI
chapter 5) Numpy
네이버 AI 부스트캠프의 Pre-course 수업을 듣던 중 공부한 내용을 정리하고, 추가적으로 따로 공부한 부분이 생기면 함께 필기했습니다.
대부분의 캡쳐, 정보는 부스트캠프 강의에서 얻었으며 오직 개인 공부의 목적으로 포스팅합니다.
강의 링크는 여기에
import numpy as np
a = [1,2,3,4,5]
b = [5,4,3,2,1]
a = np.array(a,int)
a
array([1, 2, 3, 4, 5])
test_array = np.array(["1","4",5,8],float) # 문자열을 넣어도 뒤의 지정해준 형식으로 변환해서 들어감
test_array
array([1., 4., 5., 8.])
type(test_array)
numpy.ndarray
type(test_array[3]) # 이렇게 Float Type으로 자동 형변환을 실시
numpy.float64
Numpy는 바로 메모리 안에 지정된 공간 안에 차례대로 들어간다면,
Python 리스트는 숫자 값을 넣으면 그 값이 그대로 들어가는게 아니라,
변환된 값을 리스트에 저장함. (한번 더 들어가는 구조)
쉽게 말하자면 Numpy의 메모리 저장 구조가 단순하고, 각각 하나의 메모리 크기가 일정하기 때문에 편하고 연산이 빠르다.
밑의 예시를 보자
a = [1,2,3,4,5]
b = [5,4,3,2,1]
a = [1,2,3,4,5]
b = [5,4,3,2,1]
a[0] is b[-1]
True
이렇듯 a[0]에 해당하는 1과 b[-1]에 해당하는 1이 같다고 나온다. 변환된 값이 한 셀 안에 들어갔다고 생각하면 됨.
a = np.array(a)
b = np.array(b)
a[0] is b[-1]
False
a[1] is b[-1]
False
그러나 같은 위치에, 같은 값인 1이 np.array에서는 다른 셀 안에 차례대로 들어가있기 때문에 False가 뜬다.
test_array.dtype # Array(배열) 전체의 Data Type을 반환함
dtype('float64')
test_array.shape # Array(배열)의 Shape을 반환함
(4,)
tensor = [
[[1,2,5,8],[1,2,5,8],[1,2,5,8]],
[[1,2,5,8],[1,2,5,8],[1,2,5,8]],
[[1,2,5,8],[1,2,5,8],[1,2,5,8]],
[[1,2,5,8],[1,2,5,8],[1,2,5,8]]
]
np.array(tensor, int).shape
(4, 3, 4)
np.array(tensor,int).ndim
3
np.array(tensor,int).size
48
np.array([[1,2,3],[4.5,"5","6"]], dtype=np.float32).nbytes
24
np.array([[1,2,3],[4.5,"5","6"]], dtype=np.float64).nbytes
48
np.array([[1,2,3],[4.5,"5","6"]], dtype=np.int8).nbytes
6