Numpy 기초 3편

1. np.arange(n)

 

np.arange(n)은 0~n-1까지 한 행으로 array 생성

 

list의 range는 step size에 floating point가 불가능하나 arange()는 가능

 

etc-image-0
그림1. arange에 step size로 floating point를 사용

 

보통 reshape와 같이 사용함

 

arange로 array를 만들고 원하는 shape로 바꾸기 위해 reshape를 사용

 

etc-image-1
그림2. reshape로 arange의 shape를 바꾼 모습

 

2. np.zeros() & np.ones()

 

np.zeros()는 0으로 가득 찬 ndarray

 

np.ones()는 1로 가득찬 ndarray

 

etc-image-2
그림3. np.zeros와 np.ones 예시

 

3. np.empty()

 

np.empty()는 비어있는 ndarray를 생성한다

 

그런데 일반적으로 배열을 생성할때는 메모리 공간을 싹 비우고(initialization) 잡는데 np.empty는 그냥 메모리 공간을 잡는다.

 

그래서 잡은 공간에 들어가있는 값을 가진 ndarry가 나온다

 

그래서 반복 실행할 때마다 들어가있는 값이 달라짐

 

etc-image-3
그림4. np.empty가 실행할때마다 바뀐 모습

 

4. (something)_like()

 

(something)_like(<ndarray>) ndarray의 shape만큼 (something)에 들어간 ndarray를 생성함

 

something에는 ones,zeros,empty정도를 쓸 수 있음

 

etc-image-4
그림5. ndarray 예시

 

위와 같은 ndarray가 주어질 때

 

etc-image-5
그림6. zeros_like와 ones_like, empty_like 예시

 

zeros_like는 그림5의 ndarray의 shape와 같은 np.zeros() 수행하여 모든 원소에 0을 넣는다

 

ones_like는 np.ones()를 수행하여 모든 원소에 1을 넣고 empty_like는 np.empty()를 수행

 

 

5. np.identity()

 

np.identity(n=(행의 수),dtype=)은 항등행렬을 만든다

 

etc-image-6
그림7. np.identity로 5*5 항등행렬 만든 모습

 

6. np.eye() 

 

np.eye(N=(행),M=(열),k=(대각선위치),dtype=)는 지정한 대각선이 모두 1이고 나머지는 0인 행렬

 

etc-image-7
그림8. np.eye()로 지정한 대각선은 1로 만든 대각행렬

 

7. np.diag()

 

np.diag(<ndarray>,k=(대각선 위치) 지정한 대각선 위치의 array를 추출

 

etc-image-8
그림9. 행렬에서 np.diag()로 지정한 대각원소 추출한 모습

 

etc-image-9
그림10. np.diag()의 minus indexing 모습

 

minus indexing이 일반적인 리스트 인덱싱과는 조금 다르다

 

 

8. np.random.()

 

np.random.(분포이름)(모수,size=데이터개수)로 원하는 분포의 난수를 생성

 

etc-image-10
그림11. np.random.으로 확률분포 난수 생성

 

 

728x90

'프로그래밍 > Numpy' 카테고리의 다른 글

Numpy 기초 6편  (0) 2021.11.30
Numpy 기초 5편  (0) 2021.11.29
Numpy 기초 4편  (0) 2021.11.29
Numpy 기초 2편  (0) 2021.11.27
Numpy 기초 1편  (0) 2021.11.27