티스토리 뷰

반응형

0.들어가면서

딥러닝을 하다 보면 다양한 데이터 유형을 다루게 된다. 이 때 선형대수 연산에 numpy의 sum 함수를 사용하면 매우 편리하다. 

 

데이터 유형

  • 스칼라 - 보통 x와 같은 알파벳 소문자로 표기한다.
  • 벡터 - 여러 숫자가 모여 있어 일반적으로 일차원 배열이 벡터이다.
  • 행렬(matrix) - 복수 차원을 가지는 데이터가 여러 개 있는 경우의 데이터를 합쳐서 표기한 것이다. 일반적으로 2차원 배열이고 3차원 이상의 배열은 텐서(tensor)라고 한다.

실습

>>> arr = np.arange(0, 32)
>>> len(arr)
32
>>> arr
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31])
>>> v = arr.reshape([4,2,4])
>>> v
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7]],

       [[ 8,  9, 10, 11],
        [12, 13, 14, 15]],

       [[16, 17, 18, 19],
        [20, 21, 22, 23]],

       [[24, 25, 26, 27],
        [28, 29, 30, 31]]])
>>> v.ndim      ## v의 차원
3
>>> v.sum()     ## 모든 element의 합
496
>>> res01=v.sum(axis=0) ## axis=0 기준 합계
>>> res01.shape
(2, 4)
>>> res01
array([[48, 52, 56, 60],
       [64, 68, 72, 76]])
>>> res02=v.sum(axis=1)  ## axis=1 기준 합계
>>> res02.shape
(4, 4)
>>> res02
array([[ 4,  6,  8, 10],
       [20, 22, 24, 26],
       [36, 38, 40, 42],
       [52, 54, 56, 58]])
>>> res03=v.sum(axis=2)  ## axis=2 기준 합계
>>> res03.shape
(4, 2)
>>> res03
array([[  6,  22],
       [ 38,  54],
       [ 70,  86],
       [102, 118]])
>>>

numpy하고 reshape 한것을 v에 넣었다.

  • v.ndim - 차원을 알 수 있다.
  • v.sum() - element의 합을 알 수있다.
  • v.sum(axis=0) - x축을 기준으로 합을 구하는 방식이다. x축 row를 합산한 것이다. 따라서 shape를 하면 (2, 4)가 나온다.
  • axis=1은 y축을 기준으로 row 별로 존재하는 column들의 값을 합쳐 1개로 축소하는 과정입니다.
  • axis=2는 z축을 기준으로 column의 depth가 가진 값을 축소하는 과정입니다.

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함