DevSSOM

파이썬 Numpy - 개념 본문

Python/기초

파이썬 Numpy - 개념

데브쏨 2021. 7. 24. 23:58
반응형

Numpy란?

: Numerical Python의 약자로, 파이썬에서 대규모 다차원 배열을 다룰 수 있게 도와주는 라이브러리. 즉, 2차원 이상의 많은 데이터를 다룰 수 있게해줌.

 

 

Numpy 왜 써?

데이터의 대부분은 숫자 배열로 볼 수 있음.

 

예를 들어, 왼쪽 아래의 사진 이미지를 현미경으로 확대해서 본다고 하면, 하나의 네모를 픽셀이라고 말할 수 있는데, 픽셀 하나하나의 밝고 어두운 정도인 명암을 숫자로 나타낼 수 있음. 가로 1차원과 세로 1차원의 곱으로 이루어져 있어서 결국, 2차원이 됨.

 

오른쪽 아래의 파도처럼 생긴 그래프가 사운드 데이터라고 했을 때, 가로축은 시간, 세로축은 소리라고 할 수 있음. 이 곡선에서 각각 하나의 점을 찍어서 숫자로 나타낼 수 있는데, 그러면 1차원의 배열의 데이터가 됨. 이렇게 이미지와 소리를 숫자로 나타낼 수 있는 것처럼, 실생활에서 만나는 많은 데이터들은 숫자의 배열로 볼 수 있음. 그래서 이 숫자 배열을 처리하기 위해서 Numpy를 사용함. 

 

넘파이는 반복문 없이 배열을 처리 할 수 있는 장점이 있음. 이 말은, 대용량 데이터를 계산할 때, 빨리 계산할 수 있다는 의미이고, 반복문을 사용하지 않으니 메모리를 효율적으로 사용할 수 있음. 그래서 파이썬 리스트에 비해 빠르고 효율적임.

 

 

Numpy 쓰기

Numpy의 배열은 파이썬의 list()보다도 빠른 연산과 효율적인 메모리 사용이 가능하기 때문에 빅데이터 분석 등에 널리쓰이는 매우 강력한 라이브러리라고 할 수 있음.

# list 로 배열을 만들고 출력할 때

list_arr = list(range(5))
print(list_arr)            # [0, 1, 2, 3, 4] -> 콤마(,)로 구분
print(type(list_arr))      # <class 'list'>


# numpy 로 배열을 만들고 출력할 때

import numpy as np    # numpy 모듈을 불러와서 'np' 로 줄여쓰겠다
np_arr = np.array(range(5))
print(np_arr)              # [0 1 2 3 4] -> 공백으로 구분
print(type(np_arr)         # <class 'numpy.ndarray'>
                           # ndarray는 n차원의 배열을 의미
                  
                  
# 콤마 : 리스트 -> class list 1차원의 배열
# 공백 : 넘파이 -> class numpy.ndarray n차원의 배열

 

 

 

728x90
반응형
댓글