728x90
반응형
1. 배열 생성 방법
array()
array는 값을 직접 인자로 채워서 배열을 생성합니다.
dim1 = np.array([1, 2, 3])
# [1 2 3] int32
dim2 = np.array([(1, 2, 3), (4, 5, 6)], dtype=np.float)
# [[1. 2. 3.]
# [4. 5. 6.]] float64
array는 리스트와 튜플의 조합으로 값을 직접 인자로 넣어 배열을 생성합니다. 리스트 '[]' 내에 값을 채우는데 차원을 늘리려면 튜플의 형태로 분리해 줍니다. 또한 옵션을 통해 dtype을 선택할 수 있습니다.
zeros() / ones() / full()
#=========== zeros ===========
dim1 = np.zeros((3))
# [0. 0. 0.] float64
dim2 = np.zeros((2, 3), dtype=np.bool)
# [[False False False]
# [False False False]] bool
#=========== ones ===========
dim1 = np.ones((3), dtype=np.int16)
# [1 1 1] int16
dim2 = np.ones((2, 3))
# [[1. 1. 1.]
# [1. 1. 1.]] float64
#=========== full ===========
dim1 = np.full((3), 1.336)
# [1.336 1.336 1.336] float64
dim2 = np.full((2, 3), 12)
# [[12 12 12]
# [12 12 12]] int32
zeros, ones, full은 메소드 명에서 알 수 있듯이 특정 값을 자동으로 채워 배열을 생성합니다.
zeros : 0으로 값을 채움
ones : 1로 값을 채움
full : 인자로 값을 지정해 채움
dtype을 설정하지 않고 배열을 만들면 기본적으로 float 형으로 생성됩니다.
empty()
dim1 = np.empty((3))
# [5.e-324 4.e-323 2.e-323] float64
dim2 = np.empty((2, 3, 2), dtype=np.int)
# [[[0 0]
# [0 0]
# [0 0]]
# [[0 0]
# [0 0]
# [0 0]]] int32
empty는 값을 비운 채로 배열을 생성합니다. 즉, 값을 지정하지 않고 메모리만 할당해서 만들기 때문에 임의 값 또는 쓰레기 값 (garbage value)가 채워져 있을 수 있습니다. 이 값은 해당 메모리가 마지막으로 사용되었을 때 남겨진 값입니다.
arange()
dim1 = np.arange(0, 30, 10)
# [ 0 10 20] int32
dim2 = np.arange(0, 30, 5).reshape((2, 3))
# [[ 0 5 10]
# [15 20 25]] int32
arange(start, stop, step)는 'start <= n < stop' 범위에 있는 숫자들을 step 간격으로 값을 저장합니다.
또한 reshape 메소드를 활용해 차원을 바꿔 줄 수 있습니다.
linspace()
dim1 = np.linspace(1, 10, 12, dtype=np.int)
# [ 1 1 2 3 4 5 5 6 7 8 9 10] int32
dim1 = np.linspace(1, 10, 12)
# [ 1. 1.81818182 2.63636364 3.45454545 4.27272727 5.09090909
# 5.90909091 6.72727273 7.54545455 8.36363636 9.18181818 10. ] float64
linspace(start, stop, num)는 'start <= n <= stop' 범위에 있는 숫자들을 num의 수로 나누어 배열을 만듭니다.
2. 배열 속성 확인
ndarray는 배열의 속성을 확인할 수 있는 메소드가 있습니다.
anp = np.array([1, 1.1, 2, 2.2])
print('shape :', anp.shape)
print('dimension :', anp.ndim)
print('data type :', anp.dtype)
print('element size :', anp.itemsize)
print('total size :', anp.size)
# shape : (4,)
# dimension : 1
# data type : float64
# element size : 8
# total size : 4
bnp = np.array([(False, True, False, True), (1, 2, 3, 4)])
print('shape :', bnp.shape)
print('dimension :', bnp.ndim)
print('data type :', bnp.dtype)
print('element size :', bnp.itemsize)
print('total size :', bnp.size)
# shape : (2, 4)
# dimension : 2
# data type : int32
# element size : 4
# total size : 8
cnp = np.array([(False, True), (False, True), (False, True), (False, True)])
print('shape :', cnp.shape)
print('dimension :', cnp.ndim)
print('data type :', cnp.dtype)
print('element size :', cnp.itemsize)
print('total size :', cnp.size)
# shape : (4, 2)
# dimension : 2
# data type : bool
# element size : 1
# total size : 8
shape : 배열의 모양을 반환 (n, n ... )
ndim : 배열의 차원을 반환
dtype : 배열의 데이터 타입
itemsize : 배열의 각 요소의 데이터 크기를 반환
size : 배열 요소의 총 갯수를 반환
728x90
반응형
'[R&D] 프로그래밍 > Numpy' 카테고리의 다른 글
[Numpy] 넘파이 행렬 연산 - 브로드캐스팅 (Broadcasting) (4) | 2022.07.24 |
---|---|
[Numpy] 넘파이 크기가 같은 행렬의 사칙연산 (0) | 2022.07.21 |
[Numpy] 넘파이 배열의 dtype 바꾸는 방법 (0) | 2022.07.20 |
[Numpy] 넘파이란? 기본 개념 및 설치 방법 (0) | 2022.07.10 |
댓글