이전 글에서 백테 및 행렬 계산을 쉽고 빠르게 도와주는 numpy 패키지를 설치하는 방법에 대해서 알아봤다. 오늘은 이 numpy를 이용해 ndArrary를 다루는 방법에 대해서 알아보려고 한다. ndArray는 numpy를 통해 생성되는 N차원의 배열 객체를 의미한다. numpy에서 사용하는 데이터 구조라고 생각하면 쉽지 않을까 한다. 파이썬 교육을 가면 numpy를 이용해서 머신러닝 알고리즘이나 데이터 분석을 가르치는 경우가 많다. 하자민, 개인적으로는 numpy보다 pandas를 선호한다. pandas의 dataframe구조가 우리가 일반적으로 다루는 테이블 구조와 동일하기 때문에 사용하기도 쉽고 이해하기도 쉽기 때문이다. 아무튼 pandas는 다음에 다룰 기회가 있을 것 같고, 오늘은 numpy를 사용하는 방법에 대해서 알아보자.

 

 

파이썬 numpy 사용

 

 

numpy 패키지를 사용하기 위해서는 먼저 해당 패키지를 import 해야 한다.

import numpy as np

 

ndArray를 생성하는 방법은 np.array를 이용해서 생성할 수 있다.

# 1) data라는 리스트를 만들고 이를 ndArray롤 변환한다.
data = [[1,2,3],[4,5,6],[7,8,9]]
data = np.array(data)

# 2) [1,2,3]의 1차원 행렬을 만듭니다
np.array([1,2,3])

# 3) [0,1,2,3,4,5,6,7,8,9]의 행렬을 만듭니다
np.array(range(10))

# 4) [0,1,2,3,4,5,6,7,8,9]의 행렬을 만듭니다
np.arange(10)

 

1이나 0으로 이루어진 행렬도 쉽게 만들 수 있다.

# 5) 1로 이루어진 1행 10열의 행렬을 만듭니다
np.ones(10)

# 6) 3행 3열의 1로 이루어진 행렬을 만듭니다
np.ones([3,3])

# 7) 3행 3열의 0로 이루어진 행렬을 만듭니다
np.zeros([3,3])

 

list와는 다르게 숫자를 더하거나 곱하면, 행렬의 각각의 값에 연산이 이루어진다. 또한 행렬의 차원수와 형태, 데이터 타입도 확인할 수 있다.

# 8) 차원수 확인하기
data.ndim

# 9) 몇 행 몇 열인지 알고 싶을 때
data.shape

# 10) 데이터 타입을 알고 싶을 때, 데이터 타입은 행렬안에 입력되어 있는 값을 말한다.
data.dtype

 

행렬의 각각의 위치에 있는 값을 가져오는 방법도 어렵지 않다. 해당 위치에 값을 바꾸려면 그 위치에 바로 값을 대입하면 된다.

# 11) 행렬의 첫번째 행의 값을 가져돕니다
data[0]

# 12) 행렬의 첫번째 행, 세번째 열의 값을 가져옵니다
data[0][2]

# 13) 행렬의 세번째 행, 두번째 열의 값을 가져옵니다
data[2,1]

# 14) 행렬의 세번째 행, 두번째 열의 값에 2를 넣는다
data[2,1] = 2

 

행렬의 값을 편집하거나 조건절을 이용해서 처리하는 것도 가능하다. 

# 15) 첫번째부터 두번째 열까지 5로 바꿉니다
temp =  [1, 2, 3, 4, 5]
temp = np.array(temp)

# 16) 조건에 따라 값을 뽑아내거나 바꿉니다
data[data>3]
data[data>3]=3

 

다양한 연산과 편집을 위한 함수들이 존재하기 때문에, 쉽게 작업할 수 있다. 

# 17) 행렬의 구조 바꾸기
data.reshape(2,6)
data.reshape(12)

# 18) 인버스행렬 구하기
data.T

# 19) 제곱근을 구하는 함수
np.sqrt(data)

# 20) 각 요소의 제곱을 구하는 함수
np.square(data)

# 21) 행렬곱셈하기
data.dot(data)

# 22) 단위 행렬 만들기
np_eye=np.eye(3)

 

여기에 있는 함수들외에도 다양한 함수들이 제공된다. numpy에 대해서 더 알고 싶다면 numpy 홈페이지에 방문해서 보는 것도 좋을 듯 싶다. 튜토리얼을 포함해서 자세히 설명되어 있어, 의지가 있다면 많은 내용을 습득할 수 있을 것이다.

 

numpy 홈페이지, 튜토리얼/학습안내 등 다양한 자료가 있다

 

 

계속 사용하면 익숙해지지만, 처음 접할 때는 numpy관련 함수나 명령어들이 낯설고 잘 기억이 나지 않는다. 이런 초심자들을 위해 cheat sheet라고 관련된 명령어들을 A4 한 장 크기로 이쁘게 만들어 놓은 게 있다.  numpy를 처음 접한다면 관련 cheatsheet를 사용하는 게 도움이 될 것이다.

 

numpy 사용법 관련해서 유용한 팁은 이후 포스팅에서 계속 다뤄보도록 하겠다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">