미래연구소 딥러닝 4주 차 (Numpy 특강 3)
Computer Science/Deep Learning

미래연구소 딥러닝 4주 차 (Numpy 특강 3)

728x90

미래연구소 http://futurelab.creatorlink.net/

 

미래연구소

AI, 인공지능 Deep Learning beginner 미래연구소 딥러닝 입문 스터디 / 모집인원 : 25명 (선착순 마감) 수강료 : 월 15만원 / (Coursera 강의 수강료 월 5만원 개인결제)

futurelab.creatorlink.net


import numpy as np

 

Numpy indexing & slicing

a = np.arange(36).reshape(6,6)
a

--출력--
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, 32, 33, 34, 35]])

1) Indexing

a[3,5]

--출력--
23

 

2) Slicing

a[3:6, 3:6]

--.출력--
array([[21, 22, 23],
          [27, 28, 29],
          [33, 34, 35]])
a[2:6:2, 3:6]

--출력--
array([[15, 16, 17],
          [27, 28, 29]])

 

3) Fancy Indexing

a[[2,5]]

--출력--
array([[12, 13, 14, 15, 16, 17],
          [30, 31, 32, 33, 34, 35]])
a[[2,5], [2,5]]  #a[2, 2]와 a[5, 5]를 indexing 하는 것과 같다.

--출력--
array([14, 35])
a[(2,5), (2,5)]

--출력--
array([14, 35])

 

np.sum 심화

a = np.arange(20).reshape(4,5)
a

--출력--
array([[ 0,  1,  2,  3,  4],
          [ 5,  6,  7,  8,  9],
          [10, 11, 12, 13, 14],
          [15, 16, 17, 18, 19]])
a.shape

--출력--
(4, 5)
a.ndim # ndim은 대괄호의 개수로 세면 파악하기 편합니다.

--출력--
2

1) axis=None

np.sum(a)

--출력--
190

2) axis=0

1> 행이 고정된 채 원소들끼리 더해지는 연산

2> 연산 이후 shape은 행 부분이 없어진다.

np.sum(a, axis=0)

--출력--
array([30, 34, 38, 42, 46])
np.sum(a, axis=0).shape

--출력--
(5,)
np.sum(a, axis=0).ndim

--출력--
1

3) axis=1

1> 열이 고정된 채 원소들끼리 더해지는 연산

2> 연산 이후 shape은 열 부분이 없어진다.

np.sum(a, axis=1)

--출력--
array([10, 35, 60, 85])
np.sum(a, axis=1).shape

--출력--
(4,)
np.sum(a, axis=1).ndim

--출력--
1

 

keepdims

말 그대로 차원(dimension)이 유지(keep)되는 연산이다.

np.sum(a, axis=0, keepdims = False) #이 연산은 np.sum(a, axis=0)와 동일

--출력--
array([30, 34, 38, 42, 46])
np.sum(a, axis=0, keepdims = True)

--출력--
array([[30, 34, 38, 42, 46]])

차원이 유지되며 대괄호가 2개가 되었다.

 

np.sum(a, axis=1, keepdims = False) #이 연산은 np.sum(a, axis=1)와 동일

--출력--
array([10, 35, 60, 85])
np.sum(a, axis=1, keepdims = True)

--출력--
array([[10],
          [35],
          [60],
          [85]])

마찬가지로 차원이 유지되었다.

 

np.sum(a, axis=1, keepdims = False).ndim

--출력--
1
np.sum(a, axis=1, keepdims = True).ndim

--출력--
2
728x90