페이지

2022년 8월 6일 토요일

1.3 [보충] 넘파이의 다차원 배열

 마지막으로 넘파이 다차원 배열에 관해 간단히 보충학셌습니다. 다차원 배열은 숫자 등의 원소가 일정하게 모여 있는 데이터 구조입니다. 다차원 배열에서 원소의 순서에는 방향이 있고, 이 방향을 차원(dimension) 혹은 축(axis)이라고 합니다. [그림 1-2]는 다차원 배령의 예입니다.

[그림 1-2]에는 외쪽부터 0차원 배열, 1차원 배열, 2차원 배열이 나오는데, 차례대로 스칼라(scalar), 벡터(vector), 행열(matrix)이라고 합니다. 스칼라는 단순히 하나의 수를 나타냅니다. 벡터는 하나의 축을 따라 숫자가 들어서 있고, 행렬은 축이 2개입니다.

다차원 배열을 텐서(tensor)라고도 합니다. [그림1-2]는 외쪽부터 0차원 텐서, 1차원 텐서, 2차원 텐서가 되겠죠.

넘파이의 ndarray 인스턴스에는 ndim이라는 인스턴스 변수가 있습니다. ndim은 'number of dimensions'의 약자로, 다차원 배열의 '차원수'를 뜻합니다

import numpy as np
x = np.array(1)
x.ndim
0

x = np.array([1,2,3])
x.ndim
1

x = np.array([[1,2,3],[4,5,6]])
x.ndim
2

벡터를 다룰 때는 '차원'이라는 말에 주의해야 합니다. 예를 들어 np.array([1,2,3])은 벡터인
데, 세개의 요소가 일렬로 늘어서 있기 때문에 '3차원 벡터'라고도 합니다. 이때 '벡터의 차원'
은 벡터의 원소수를 말합니다. 한편 '3차원 배열'은 (원소가 아닌) 축이 3개라는 뜻입니다.

이상과 같이 ndarray인스턴스를 사용하면 스칼라, 벡터, 행렬, 심지어 더 높은 차원의 텐서를
만들 수 있습니다.




댓글 없음: