일공이의 IT노트

[Python] 넘파이(Numpy) :: np.array(), np.ndarray(), np.arrange()로 배열 생성 본문

Programming/Python

[Python] 넘파이(Numpy) :: np.array(), np.ndarray(), np.arrange()로 배열 생성

일공ILGONG 2021. 4. 22. 23:44

 

 

1) 넘파이(Numpy)

 

넘파이(Numpy)는 수치 데이터를 다루는 파이썬 패키지이다. Numpy의 핵심이라고 불리는 다차원 행렬 자료구조인 ndarray를 통해 벡터 및 행렬을 사용하는 선형 대수 계산에서 주로 사용된다.

 

numpy 임포트하기

import numpy as np

 

 


2) np.array()

 

np.array()는 리스트, 튜플, 배열로부터 ndarray를 생성한다.

인덱스가 항상 0으로 시작한다는 특징이 있다.

 

2-1) 리스트로 1차원 배열 생성하기

a = np.array([1, 2, 3, 4, 5])
print(type(a))
print(a)

 

2-2) 튜플로 1차원 배열 생성하기

b = tuple(a)
print(type(b))
print(b)

 

참고로 튜플은 요소의 변경, 추가, 삭제가 불가능하다는 점을  제외하고는 리스트와 같은 기능을 하고 비슷한 형태를 갖고 있다. 따라서 튜플을 리스트로 만들거나 리스트를 튜플로 만드는 것이 가능하다.

 

 

2-3) 2차원 배열 생성하기

b = np.array([[10, 20, 30], [60, 70, 80]])
print(b)

 

여기서 주의할 점은, array() 안에는 하나의 리스트만 들어가므로 리스트의 리스트를 넣어야 한다.

행렬의 차원 및 크기를 확인하려면 ndim 속성과 shape 속성을 출력한다.

print(b.ndim)
print(b.shape)

 

ndim은 차원의 수를, shape는 행렬의 크기를 나타낸다.

 

 


3) ndarray의 초기화

 

리스트를 이용한 방법 말고도 다양한 ndarray 초기화 방법이 있다.

 

 

3-1) zeros()

a = np.zeros((2,3))

 

zeros()는 해당 배열에 모두 0을 삽입한다.

 

 

3-2) ones()

a = np.ones((2,3))

 

ones()는 모두 1을 삽입한다.

 

 

3-3) full()

a = np.full((2,2),7)

 

full()은 배열의 모든 값에 사용자가 지정한 특정 상수값을 넣는다.

 

 

3-4) eye()

a = np.eye(3)

 

eye()는 대각선으로는 1이고 나머지는 0인 2차원을 생성한다.

 

 

3-5) numpy 난수 생성

a = np.random.rand(5)
print(a)

b = np.random.random((2,2))
print(b)

 

random.rand() 함수는 주어진 행태의 난수 array를 생성한다. 난수 array는 [0,1) 범위에서 균일한 분포를 갖는다.

 

 

 


4) np.arange()

 

 

np.arange()는 지정해준 범위에 대해서 배열을 생성해준다.

a = np.arange(10)
print(a)

 

 

np.arange(i, j, k)는 i부터 j-1까지 k씩 증가하는 배열을 생성한다.

np.array(1, 10, 2)  # np.arrange(start, stop, dtype)

 

 

 


Reference

 

wikidocs.net/32829

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net