numpy 패키지는 벡터 및 행렬 계산을 쉽고 빠르게 도와주는 패키지입니다. numpy에서는 ndArray라는 자료형을 사용합니다. ndArray는 numpy를 통해 생성되는 N차원의 배열 객체를 의미합니다. numpy를 이용해 ndArrary를 다루는 방법에 대해서 알아보겠습니다.

 

 

ndArray는 numpy에서 사용하는 데이터 구조라고 생각하면 쉽지 않을까 합니다. 파이썬 교육을 가면 numpy를 이용해서 머신러닝 알고리즘이나 데이터 분석을 가르치는 경우가 많습니다. 개인적으로는 numpy보다 pandas를 선호합니다. pandas의 dataframe구조가 일반적으로 다루는 테이블 구조와 동일하기 때문입니다. 그래서 사용하기도 쉽고 이해하기도 쉽습니다.

 

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관련 함수나 명령어들이 낯설고 잘 기억이 나지 않습니다. 이런 초심자들을 위해 cheat sheet라고 관련된 명령어들을 A4 한 장 크기로 이쁘게 만들어 놓은 게 있습니다.  numpy를 처음 접한다면 관련 cheatsheet를 사용하는 게 도움이 되겠습니다. numpy 사용법 관련해서 유용한 팁은 이후 포스팅에서 계속 다뤄보겠습니다.

 

Recommendation 포스팅

 

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