numpy의 호출 방법
일반적으로 numpy는 np라는 별칭(alias)을 이용해서 호출함
특별한 이유는 없음 .. 세계적인 약속 같은 것
import numpy as np
numpy는 np.array 함수를 활용하여 배열을 생성 -> ndarray (numpy dimension array)
numpy는 하나의 데이터 타입만 배열에 넣을 수 있음
리스트와 가장 큰 차이점 : Dynamic typing not supported
C의 array를 사용하여 배열 생성
test_array = np.array(["1", "4", 5, 8], float)
test_array
array([1., 4., 5., 8.])
type(test_array[3])
numpy.float64
test_array = np.array([1, 4, 5, "8"], np.float32) # string type의 데이터("8")를 입력해도
test_array
array([1., 4., 5., 8.], dtype=float32)
type(test_array[3]) # float type으로 자동 형변환 실시
numpy.float32
test_array.dtype # dtype : 배열 전체의 data type을 반환
dtype('float32')
test_array.shape # shape : 배열의 shape을 반환함 (튜플 타입)
(4,)
# array shape (vector)
test_array = np.array([1, 4, 5, "8"], float)
test_array.shape # ndarray의 shape을 반환 (튜플 타입)
(4,)
# array shape (matrix)
matrix = [[1, 2, 5, 8], [1, 2, 5, 8], [1, 2, 5, 8]]
np.array(matrix, int).shape # ndarray의 shape을 반환 (튜플)
(3, 4)
# array shape (3rd order tensor)
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 # ndarray의 shape을 반환 (튜플)
# 4 -> 깊이, 3 -> column, 4 -> row
(4, 3, 4)
# ndim : number of dimension
np.array(tensor, int).ndim
3
# size : 전체 data의 개수
np.array(tensor, int).size
48
np.array([[1, 2, 3], [4.5, 5, 6]], dtype=int) # data type을 integer로 선언
array([[1, 2, 3],
[4, 5, 6]])
np.array([[1, 2, 3], [4.5, "5", "6"]], dtype=np.float32) # data type을 float로 선언
array([[1. , 2. , 3. ],
[4.5, 5. , 6. ]], dtype=float32)
# nbytes : ndarray의 object의 메모리 크기를 반환
np.array([[1, 2, 3], [4.5, "5", "6"]], dtype=np.float32).nbytes
# 6 * 32bits = 6 * 4bytes = 24bytes
24
np.array([[1, 2, 3], [4.5, "5", "6"]], dtype=np.int8).nbytes
# 6 * 8bits = 6 * 1bytes = 6bytes
6
np.array([[1, 2, 3], [4.5, "5", "6"]], dtype=np.float64).nbytes
# 6 * 64 bits = 6 * 8bytes = 48bytes
48