본문 바로가기
AI/[TEAMLAB]Numpy 사용법

[TEAMLAB] 3 - 5. Create Function

by 쵸빙 2020. 1. 20.

     이번 시간에는 array를 만드는 함수에 대해서 알아보도록 하겠다.

 

arange

     처음에 배울 것은 arange로 array를 지정해놓은 range에 따라서 만드는 것이다.

list의 경우에서는 list(range(10))의 형태로 0~9의 list를 만들었었다.

numpy의 경우에도 마찬가지로 np.arange(10)의 형태로 0~9까지의 vector를 만들 수 있다.

list처럼 numpy도 시작, 끝, step으로 범위를 지정할 수 있고, list와 달리 floating 포인트로 step을 표현할 수 있다는 것이

특징이다.

 

     numpy 배열을 tolist 함수를 통해서 list로 표현할 수도 있다.

 

zeros

     zeros는 0으로 가득찬 ndarray를 만드는 것인데 shape라고 키워드를 써도 되도 안 써도 된다. 데이터 타입도 지정할 수 있다.

 

ones

     ones도 비슷하게 1로 가득찬 ndarray를 만드는 것이다.

 

empty

     empty는 shape만 주어지고 비어있는 ndarray가 생성된다. 초기화가 되지 않기 때문에 이상한 값들이 들어있을 수 있다. 잘 쓸 일은 없을 것이라고 한다.

 

something_like

     something_like는 위에서 설명했던 ones, zeros 등이 들어갈 수 있다.

 

     실제로 코드로 사용할 때에는 shift + tab을 누르면 위와 같이 함수의 argument들을 알 수 있다.

     empty는 메모리 특정 영역만 잡고 초기화가 안 되어있기 때문에 ctrl+enter 누를 때마다 값이 계속 바뀐다.

 

     ones_like는 기존의 matrix의 원소들만 1로 다 만들어준다. 기존의 matrix와 크기, 모양은 같다.

zeros_like도 0으로 채우는 것뿐 똑같다.

 

identity

     다음으로는 선형대수의 matrix에서 나오는 여러 개념들을 알아보도록 하겠다. n x n 형태의 단위행렬을 만들어준다.

 

eye

     eye는 대각선이 1인 행렬인데 n과 m의 값을 지정해줄 수 있고, n은 행, m은 열에 해당한다. 만약 정방행렬이라면 단위행렬과 같을 것이다. row, column이 0인 값부터 시작하는데 k의 값을 지정하여 시작하는 값을 변화시킬 수 있다.

 

diag

      diag 함수는 대각 행렬의 값만 뽑아서 가져온다. eye와 마찬가지로 k로 시작 위치를 설정할 수 있다.

 

Random Sampling

     random sampling은 분표에 따른 값들을 가져올 수 있다. uniform이라고 표현되는 균등분포는 첫번째 argument에 최저값, 최고값, 데이터의 개수를 넘긴다. 이 경우에는 0에서 1까지 10개를 가져와서 2 x 5 모양으로 만들어준다.

normal은 정규분포이고 이 경우에는 평균이 0이고 정규분포가 1인 것에서 10개를 뽑아오라는 것을 의미한다.

이것은 딥러닝에서 굉장히 많이 쓰일 것이니 꼭 기억하자.

 

diag 사용

     위와 같이 diag를 사용하면

0 1 2

3 4 5

6 7 8

이라는 matrix에서 대각선 값인 0, 4, 8만 뽑아올 수 있다.

만약 k가 1이면 1, 5를 가져왔을 것이다.

 

다음 시간에는 operation functions에 대해 배우도록 하겠다