numpy array의 차원 size가 저장된 attribute이다.

arr = np.array([1,1,1],
               [1,1,1])
arr.shape
 
>>> (2,3)

용어 정리: dimension of array VS dimension of space

왜 이렇게 된건지 알 수 없을 정도로 혼란하게 섞여있다.

미적분 및 기하학에서 <x, y, z> 는 3차원 벡터이다.

하지만, numpy에서는 shape가 (3,)으로 표현되며 이는 1차원이라 부른다. shape가 (2, 2, 4)와 같은 텐서를 3차원이라 부른다.

여기서 충돌한다. 그래서 차원은 애매한 단어가 된다.

따라서 앞으로 나는 dimension of array는 rank. dimension of space는 feature dimension(짧게는 dimension). 이렇게 표현을 정리하겠다.

내가 생각하는 방식

shape가 (1) 1 차원 스칼라. (5) 5 차원 벡터. (2, 1) 2x1 매트릭스 또는 col 벡터.

(3, 5) 3x5 매트릭스 이것은 5차원 벡터가 3개 쌓인 것가 같음.

(2, 3, 5) (3, 5)가 2개 쌓인 텐서

오른쪽에서부터 재귀적으로 쌓아가는 텐서tensor적 관점으로 생각함.

실제

스칼라 ( ) 로 표현됨. 1 차원 (n,) n의 값과 차원은 무관. 2 차원 (n, m) 매트릭스이다. 3 차원 (n, m, k) 텐서이다. 4 차원 (n, m, k, i) 텐서이다. …

이것이 numpy에서 실제로 쓰이는 언어이다. 여기에는 차원이라 썼지만, 앞으로는 랭크(rank)로 표현하겠다. (적어도 나는..)