본문 바로가기
[Library] - Numpy/Quick Start

# 1. Numpy Array Creation

by Bebsae 2022. 1. 9.

지난 포스트에서는 Numpy에 대해 기본적인 내용들을 살펴보았다. 이번 포스트에서는 Numpy 배열을 생성하는 방법들에 대해 알아보려고 한다. 

 

Basic creation

import numpy as np

a = np.array([1, 2, 3, 4])
print(a)
print(a.dtype)
print(a.shape)

>>
[1 2 3 4]
int64
(4,)

기본적인 배열 생성 방법은 np.array 메소드에 인자로 배열의 요소로 들어갈 시퀀스를 전달하는 방법이다. 

 

b = np.array([(1.5, 2, 3), (4, 5, 6)])
print(b)
print(b.dtype)
print(b.shape)

>>
[[1.5 2.  3. ]
 [4.  5.  6. ]]
float64
(2, 3)

다차원 배열을 생성할 때는 시퀀스를 변형하면 된다. 또한, Numpy 배열은 원소들의 데이터 타입이 통일되기 때문에 실수형 원소인 1.5가 대입되면 나머지 정수들도 실수 취급된다.

 

c = np.array([[1, 2], [3, 4]], dtype=complex)
print(c)
print(c.dtype)
print(c.shape)

>>
[[1.+0.j 2.+0.j]
 [3.+0.j 4.+0.j]]
complex128
(2, 2)

물론 데이터 타입을 직접 명시하여 배열을 생성할 수도 있다.

 

np.zeros

np.zeros((3, 4), dtype=np.int16)

>>
[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]

원소들을 0으로 채우는 방법이다. 첫 번째 인자에 생성할 배열의 차원을 전달하면 된다.

 

np.ones

np.ones((2, 3, 4), dtype=np.int16)

>>
[[[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]

 [[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]]

원소들을 1로 채우는 방법이다.

 

np.empty

np.empty((3, 4))

>>
[[2.         2.         4.70372193 2.73861279]
 [2.         2.         2.23606798 2.23606798]
 [2.         2.         4.70372193 2.73861279]]

초기화 되지 않은 메모리 상태에 기반하여 원소들을 랜덤한 값으로 채운다. 기본 데이터 타입은 float64 이다.

 

np.arange

np.arange(10, 30, 5)

>>
[10 15 20 25]

np.arange 메소드는 세 가지를 인자로 받는다. 첫 번째 인자는 start, 두 번째 인자는 stop, 세 번째 인자는 step이다. start 부터 stop까지 step 단위로 원소들을 갖는 배열을 생성한다. (stop은 제외한 원소)

 

np.linspace

np.linspace(10, 30, 5)

>>
[10. 15. 20. 25. 30.]

np.linspace 또한 세 가지의 인자를 받는다. 단, 세 번째로 받는 인자는 step이 아닌 num이다. start 부터 step까지 일정한 간격으로 num 개수 만큼의 원소를 배열의 원소로 갖는다. (stop을 포함)

 

np.xxxx_like

a = np.arange(0, 20, 2).reshape((2, 5))
print(a)

print(np.ones_like(a))
print(np.zeros_like(a))
print(np.empty_like(a))

>>
# shape : (2, 5)
[[ 0  2  4  6  8]
 [10 12 14 16 18]]
 
# ones_like
[[1 1 1 1 1]
 [1 1 1 1 1]]
 
# zeros_like
[[0 0 0 0 0]
 [0 0 0 0 0]]
 
# empty_like
[[0 0 0 0 0]
 [0 0 0 0 0]]

특정 배열과 같은 차원으로 새로운 배열을 생성한다. 그러나 xxxx에 들어가는 키워드에 따라 다른 원소들이 할당된다.

 

.

.

.

 

다음 포스트에서는 원소를 랜덤으로 할당해주는 np.random 패키지의 rand, randint, randn 메소드에 대해 알아보겠다.

 

참고

https://numpy.org/devdocs/user/quickstart.html

 

NumPy quickstart — NumPy v1.23.dev0 Manual

NumPy provides familiar mathematical functions such as sin, cos, and exp. In NumPy, these are called “universal functions” (ufunc). Within NumPy, these functions operate elementwise on an array, producing an array as output. See also all, any, apply_al

numpy.org

https://firework-ham.tistory.com/33

 

파이썬 numpy - array 생성 함수 ones, zeros,empty

이번 포스팅은 numpy에서 array 생성 함수인 arange, ones, zeros, emtpy, _like에 대해 정리해보겠습니다. arange numpy에서 원하는 숫자 범위를 모두 포함하는 배열을 만드는 함수를 제공합니다. arange를 사용..

firework-ham.tistory.com

 

'[Library] - Numpy > Quick Start' 카테고리의 다른 글

# 5. Universal functions  (0) 2022.02.25
# 4. Basic Operations  (0) 2022.02.19
# 3. Printing Arrays  (0) 2022.02.19
# 0. Numpy 기초  (0) 2022.01.07

댓글