AI/Numpy

[Numpy] numpy 배열 다루기

sangwonYoon 2023. 3. 8. 01:10

넘파이의 배열이 갖는 특징들과 넘파이 배열을 다루는 방법들에 관해 알아보자.


ndarray

  • numpy의 N차원 배열 객체이다.
  • numpy는 하나의 데이터 타입만 배열에 넣을 수 있다.
  • 각 element가 차지하는 메모리의 크기를 지정할 수 있다.
  • 파이썬의 list보다 뛰어난 연산 성능을 갖는다.
import numpy as np

test_array = np.array(["1", "4", 5.0, 8], float) # ndarray 객체 생성

print(test_array) # 출력: [1. 4. 5. 8.]

print(type(test_array)) # 출력: <class 'numpy.ndarray'>

print(type(test_array[0])) # 출력: <class 'numpy.float64'>

 

shape

array의 dimension 구성을 반환한다.

dtype

array의 데이터 type을 반환한다.

import numpy as np

test_array = np.array(["1", "4", 5.0, 8], float)

print(test_array.shape) # 출력: (4,)

print(test_array.dtype) # 출력: float64

 

array의 shape 구하는 나만의 팁

→ 가장 바깥의 대괄호를 벗겼을 때, 그 안에 있는 원소의 개수를 차례로 써준다.

tensor = [[[1,2,5,8], [1,2,5,8], [1,2,5,8]],
	[[1,2,5,8], [1,2,5,8], [1,2,5,8]],
	[[1,2,5,8], [1,2,5,8], [1,2,5,8]],
	[[1,2,5,8], [1,2,5,8], [1,2,5,8]]]

np.array(tensor, int).shape # (4, 3, 4)

 

reshape 함수

array의 element의 개수는 유지한 채 shape을 변경한다.

test_matrix = [[1,2,3,4], [1,2,5,8]]

np.array(test_matrix).reshape(8,) 
# array([1, 2, 3, 4, 1, 2, 5, 8])

np.array(test_matrix).reshape(-1, 2).shape # -1은 값을 알아서 지정해주라는 뜻
# (4, 2)

 

flatten 함수

다차원의 array를 1차원 array로 변환한다.

test_matrix = [[1,2,3,4], [1,2,5,8]]

np.array(test_matrix).flatten()
# array([1, 2, 3, 4, 1, 2, 5, 8])

 

indexing

파이썬의 list와 달리 이차원 배열에서 [x,y] 표기법을 제공한다.

# 아래 두 코드는 같은 역할을 한다.
matrix[x][y] # matrix는 numpy array
matrix[x,y]

 

slicing

파이썬의 list와 달리 행과 열 부분을 나눠서 slicing이 가능하다.

a = np.array([[1,2,3,4,5], [6,7,8,9,10]], int)

a[:, 2:] # 전체 행의 세번째 열 이후 값들

a[1, 1:3] # 두번째 행의 두번째, 세번째 행의 값들

a[1:3] # 두번째, 세번째 행의 값들

a[:, ::2] # 전체 데이터에서 열 기준 2 step씩 건너 뛴 값들

'AI > Numpy' 카테고리의 다른 글

[Numpy] where 함수 사용법  (0) 2023.03.08
[Numpy] numpy 배열 간 연산  (0) 2023.03.08
[Numpy] numpy 배열 합치기  (0) 2023.03.08
[Numpy] axis란 무엇일까?  (0) 2023.03.08
[Numpy] numpy 배열 생성하기  (0) 2023.03.08