본문 바로가기
numpy

파이썬 numpy 배열 생성하기

by Sixty Hertz 2020. 2. 20.

[파이썬 numpy 배열 생성하기]

 

numpy 배열 생성하기

 

numpy는 기본 데이터형을 배열로 가지며, 수치계산을 위해 배열부터 생성해야 하는데

 

배열은 1차원 배열부터 다차원 배열까지 생성이 가능하며 방법은 아래와 같습니다.

 

1차원 배열

a = np.array([0, 1, 2])
[1 2 3]

 

2차원 배열

b = np.array([[0, 1, 2], [3, 4, 5]])
[[0 1 2]
 [3 4 5]]

 

3차원 배열

c = np.array([[[1], [2]], [[3], [4]]])
[[[1]
  [2]]

 [[3]
  [4]]]

 

위와 같이 배열을 생성한 후 차원수와 배열 형태를 확인하는 방법은 아래와 같습니다.

a.ndim      # 차원수 반환
a.shape     # 배열 형태 반환.  예시> (2,3)

 

위 방법외에도 배열에 연속적인 값을 입력하거나 어떤 규칙이 있는 데이터를 입력해야 하는 경우

다른 방식으로 배열 생성이 가능합니다.

 

정수배열 생성

a = np.arange(5)
[0 1 2 3 4]      # np.arange(n) : 0부터 n-1까지 정수배열 생성(1차원)

 

범위내 지점(point) 입력(표현이 좀 이상합니다..)

a = np.linspace(0, 5, 10)
[0.         0.55555556 1.11111111 1.66666667 2.22222222 2.77777778
 3.33333333 3.88888889 4.44444444 5.        ]                 # 0~5사이를 10개로 나눈 지점값 입력

 

간단한 배열 생성

a = np.ones((3, 3))
[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

 

a = np.zeros((2, 2))
[[0. 0.]
 [0. 0.]]

 

a = np.eye(5)
[[1. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0.]
 [0. 0. 1. 0. 0.]
 [0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 1.]]

 

a = np.diag(np.array([1, 2, 3, 4, 5]))
[[1 0 0 0 0]
 [0 2 0 0 0]
 [0 0 3 0 0]
 [0 0 0 4 0]
 [0 0 0 0 5]]

 

위 배열의 결과값들만 봐도 어떤 기능인지 알 수 있을 것 같습니다.

 

그리고 numpy에서는 랜덤함수를 이용해 무작위로 배열을 생성하는 방식이 있습니다.

 

a = np.random.rand(5)       # 0 ~ 1 사이에 5개의 난수를 생성합니다.
[0.15817526 0.00289612 0.60159423 0.64357121 0.9331843 ]

 

댓글