본문 바로가기
IT&게임/파이썬(Python)

01. 넘파이(Numpy)란? 넘파이를 왜 쓰는 걸까 (n차원 배열을 이해해보자)

by 푸루루 2025. 9. 17.
728x90
반응형

 
넘파이(Numpy)는 Numerical  Python의 줄임말로 숫자, 수치에 관한 파이썬 라이브러리이다. 
 

넘파이 사용하기

 
넘파이를 사용하기 위해서는 라이브러리를 코드로 불러온다. 

import numpy as np

 
구글 코랩은 ctrl enter를 눌러 실행할 수 있다. 
 

넘파이 배열 (ndarray)

 
넘파이의 핵심은 ndarray 이다. n-dimensional array로 n차원의 배열이며, 수학에서는 이차행렬을 생각해 볼수 있다. 
 
1차원 배열은 단순하다.

import numpy as np

arr1=np.array([1,2,3,4])
print(arr1)

파이썬의 [리스트]를 넘파이 배열로 변한하여 출력한다.
 
파이썬의 리스트와 다른점은 넘파이 배열은 ',' 쉼표가 빠진걸 볼 수 있다. 

 
파이썬의 [리스트]에 곱하기 2를 하면 문자열 *2 처럼 두번 나열 된다.  
넘파이의 배열 리스트에 곱하기 2를 하면 실제 숫자가 곱해진다.  
 
이처럼 넘파이 배열은 백터화 연산으로 수치 연산을 편하게 한다. 

2차원 배열

 
2차원 배열은 말 그대로 엑셀을 떠올린다. 
넘파이의 배열을 이해하기 위해서는 axis(축)의 개념을 이용한다. 
2차원 배열은 x축과 y축으로 생긴 형태이다. 

 
array([[1,0,3],
         [2,4,5]])   
 

1 0 3
2 4 5

 
첫번째 대괄호 안에 있는 요소들이 axis0의 요소 즉 axis0은 2개이다. [],[] 
그 안에 있는 요소들이 대괄호가 axis1 즉 axi1은 3개로 구성되어 있다. 1/0/3
=> 사실 2차원 배열은 축을 알 필요가 없이 직관적이다.  축은 3차원 배열을 이해할때 응용해보자. 
 

3차원 배열

 
3차원 배열은 큐브모양으로 형성되어 있는 3D다. 
3차원 배열에 axis(축)의 개념을 넣으면 x축은 axis 2, y축은 axis1, z축은 axis0으로 본다. 
 
array( [
            [ [1,0,3] , [1,0,3] ],
            [ [1,0,3] , [1,0,3] ],
            [ [1,0,3] , [1,0,3] ],
            [ [1,0,3] , [1,0,3] ]
         ] )
 
동일하게 적용해보자. 3차원 배열의 첫번째 대괄호를 axis0 즉, 두덩이이 axis0은 4개이다.
그안에 괄호인 axis1 역시도 2개이다. [1,0,3] , [1,0,3] 이니까. 
그안의 괄호인 axis3은 바로 3개이다. 1/0/3
 
즉 z축이 4개로 층층이 쌓인 이차원 배열을 떠올리면 쉽다. 
 

넘파이의 데이터 타입 

 
넘파이의 데이터 타입은 다음과 같이 볼 수 있다.
int64는 정수 integer 타입에 64bit라는 의미를 나타낸다. 
 

 
 

넘파이를 왜쓰는걸까 ? 

 
대체 이 지루한 넘파이를 왜 쓰는 거냐 하면 
 
1. 메모리 사용 효율이 좋아 속도가 빠르다.
2. 선형 대수 연산을 지원한다. 
 -> 선형 대수는 줄(벡터)나 표(행렬)로 숫자를 다루는 수학을 말한다 (즉, 공간을 다룰 수 있다)
3. 벡터화 연산 지원 
 - 배열의 모든 요소에 대해 루프없이 한 번에 연산을 수행하는 기법이다. 
 
파이썬을 리스트 끼리 더하면, 문자열 처럼 붙어지지만 
넘파이의 배열 리스트는 두 리스트의 수치가 더해진다. 
 
 
 

728x90

댓글