머신러닝/넘파이

[Numpy] array 생성함수 - arange, ones, zeros, empty

shoney9254 2021. 8. 10. 23:07
반응형

array를 생성하기 위한 함수들을 알아보자. 배열을 직접 입력하기에는 어려움이 있다. 다차원 배열들은 array 생성 함수로 생성하면 시간을 단축 할 수 있다. 

 

1. arange

- 인자로 배열의 크기를 입력해야한다. 

- 0부터 크기만큼 1씩 더하는 데이터 값들이 생성된다. 

소스 코드

import numpy as np

 

# 1.arange

arange_array = np.arange(5)  # 배열의 크기를 입력

print(arange_array)

-결과를 보면 0부터 배열의 크기(5) 까지 +1 씩 더해서 생성하는 것을 확인 할 수 있다.

print 결과

[0 1 2 3 4]

 

 

2. zeros

- 인자로 shape와 dtype을 입력 할 수 있다. 

- 결과는 0이 들어가 있는 배열을 생성한다. 

소스 코드

# 2.zeros

# (shape, dtpe) 의 인자를 받을 수 있다.

 

# 2차원

zeros_array2 = np.zeros((3, 4), dtype='int32')

print(zeros_array2)

print("zeros_array의 타입 :", zeros_array2.dtype)

print("zeros_array의 shape :", zeros_array2.shape)

-결과를 보면 모두 0이 들어가 있는 (3,4) shape의 배열이 생성 되었다. 물론 type 도 int32로 확인 된다. 

print 결과

[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]
zeros_array의 타입 : int32
zeros_array의 shape : (3, 4)

 

- shape에다가 3차원 배열을 추가 하더라도 물론 생성된다. 이번에는 타입을 추가 하지 않았다. 

소스 코드

# 3차원

zeros_array3 = np.zeros((2, 3, 4))

print(zeros_array3)

print("zeros_array의 타입 :", zeros_array3.dtype)

print("zeros_array의 shape :", zeros_array3.shape)

- 타입이 없는 경우에는 default로 float64 데이터 타입을 가지게 된다. 

print 결과

[[[0. 0. 0. 0.]
  [0. 0. 0. 0.]
  [0. 0. 0. 0.]]

 [[0. 0. 0. 0.]
  [0. 0. 0. 0.]
  [0. 0. 0. 0.]]]
zeros_array의 타입 : float64
zeros_array의 shape : (2, 3, 4)

 

3. ones

- zeros와 동일하다. 하지만, 모든 데이터 값이 1일 들어간다. 

소스 코드

# 3.ones

ones_array = np.ones((3, 4), dtype='int32')

print(ones_array)

print("ones_array의 타입 :", ones_array.dtype)

print("ones_array의 shape :", ones_array.shape)

 

print 결과

[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
ones_array의 타입 : int32
ones_array의 shape : (3, 4)

 

4. empty

- empty의 생성 방법은 위의 ones, zeros와 동일하다.

- 주의 해야할 점은 데이터 초기화가 없기 때문에 예상할 수 없는 데이터들이 들어가 있습니다. 

소스 코드

# 4.empty

empty_array = np.empty(shape=(10,), dtype=np.int8)

print(empty_array)

print("empty_array의 타입 :", empty_array.dtype)

print("empty_array의 shape :", empty_array.shape)

 

print 결과

[109 101 110 116  97 116 105 111 110  32]
empty_array의 타입 : int8
empty_array의 shape : (10,)

반응형