import numpy as np
import를 잊지 말 것
arr = np.array([1, 2, 3], dtype=np.uint8)
print('arr.dtype : ', arr.dtype)
print('arr.dtype.kind : ', arr.dtype.kind)
print('arr.dtype.alignment : ', arr.dtype.alignment)

arr = arr.astype('int8')
print('arr.dtype : ', arr.dtype)

a = np.array([0, 255], dtype=np.uint8)
b = a.astype('int8')
print('a : ', a)
print('b : ', b)

b에 들어가는 데이터 범위가 좁아져 a와 b값이 다른 것을 확인할 수 있음
nan : Not-a-Number의 약자로 숫자가 아닌 값, 혹은 정의되지 않은 값.
inf, -inf : 무한대의 숫자
위 데이터 표현의 타입은 float타입.
print('np.nan : ', np.nan, ', type(np.nan) : ', type(np.nan))
print('np.inf : ', np.inf, ', type(np.inf) : ', type(np.inf))
print('-np.inf : ', -np.inf, ', type(-np.inf) : ', type(-np.inf))

arr2 = np.arange(4)
print('arr2[0] : ', arr2[0])

arr[1][2]으로 두번에 걸쳐 인덱싱하는 것보다, arr[1,2]처럼 한번에 인덱싱 하는 코드가 더 빠름
arr3 = np.arange(4).reshape(2, 2)
print('\narr3 : \n', arr3)
print('\narr3[0] : \n', arr3[0])
print('\narr3[0][1] : \n', arr3[0][1])
print('\narr3[0, 1] : \n', arr3[0, 1])

arr4 = np.arange(2, 7)
print('arr4[:2] : ', arr4[:2])
target = [0, 2]
print('arr4[target] : ', arr4[target])

arr5 = np.arange(21).reshape(3, 7)
print('\narr5 : \n', arr5)
print('\narr5[ : , :3] : \n', arr5[ : , :3])
print('\narr5[1: , 2:] : \n', arr5[1: , 2:])

참고링크 : https://wikidocs.net/160670, https://wikidocs.net/160671