안녕하세요. 오랜만에 돌아왔습니다.
딥러닝 공부하며 중요한 부분들 가끔 정리해보도록 하겠습니다!
벡터, 행렬이나 일반적인 대규모 다차원 배열의 처리를 지원하는 라이브러리
일반 List에 비해 빠르고 , 메모리 효율적
ndarray를 활용 - Numpy의 N차원 배열
ex) int type의 ndarray 예시
test_array = np.array(["1","4",5,8],float
test_array
#출력값 : array([1., 4., 5., 8.])
여러가지 형식을 찍어서 보여줄수도 있음
type(test_array[3])
#출력값 : numpy.float64
test_array.dtype
#출력값 : dtype('float64')
np.array([[1, 4, 5, "8"]], np.float32).shape
#출력값 : (1, 4) - 1차원에 1 2차원에 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]],
[[1,2,5,8],[1,2,5,8],[1,2,5,8],[1,2,5,8]]]
np.array(tensor, int).shape
#출력값 : (4, 4, 4)
배열의 Size만 같다면 다차원으로 자유롭게 변형 가능
np.array(tensor).reshape(16,4)
array([[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],
[1, 2, 5, 8],
[1, 2, 5, 8],
[1, 2, 5, 8],
[1, 2, 5, 8]])
Slicing과 Indexing의 문법
# indexing
test_list = [[1, 2, 5, 8],
[2, 3, 6, 9],
[3, 4, 7, 10]] # 3 x 4 array
test_array = np.array(test_list, int)
print(test_array[1][2]) # 6 출력
print(test_array[1, 2]) # 동일하게 6 출력
# slicing Start:End:Interval의 문법
print(test_array[1:2, :2]) # 1번행 이상 / 2번행 미만, 2번 열 미만 출력
#[[2 3]]
print(test_array[1, :2]) # 동일하게 출력되지만, 위에는 2차원, 이 코드는 1차원으로 출력
#[2 3]
print(test_array[:, 2:]) # 모든 행, 2번 열 이후 출력
#[[ 5 8]
#[ 6 9]
#[ 7 10]]
print(test_array[:, ::2]) # 모든 행 + 모든 열을 2칸씩 띄워서
#[[1 5]
#[2 6]
#[3 7]]
print(test_array[1::2, 0:4:3]) # 1번 행부터 끝까지, 2행씩 띄워서 출력
#[[2 9]]
Pytorch 공부에 앞서 조금 알아본 수준이기에 실습을 더 해보자.