Study/Python

[Python/Numpy] 파이썬의 라이브러리 : 넘파이 (1)

ChoiSenn 2022. 7. 25. 16:52

 

 

 

넘파이란?

 

데이터 과학 전반에 사용되는, 수치 계산을 위해 제작된 Python의 외부 라이브러리이다. 특히 머신러닝, 딥러닝을 구현할 때 행렬 및 다차원 배열 계산을 할 때 유용하다.

 

 

 

넘파이 사용법

 

코드 내에서 import문을 이용하여 라이브러리를 불러온다.

import numpy as np

 

 

 

다차원 배열의 속성들

 

ndim : 배열 축 혹은 차원의 개수를 나타냄
shape : 배열의 형상을 기술하며 (m, n) 형식의 튜블 형으로 나타냄
size : 배열 원소의 개수를 말하며 (m, n) 형상 배열의 size는 m X n임
dtype : 배열 원소의 자료형을 기술함
itemsize : 배열 원소의 크기를 바이트 단위로 기술. 예를 들어 int32 자료형의 크기는 32/8 = 4바이트
data : 배열의 실제 원소를 포함하고 있는 버퍼
stride : 배열의 차원별로 다음 요소로 점프하는 데에 필요한 거리를 바이트로 표시한 값
 
 
넘파이로 array 객체를 생성한 후, a 객체의 형상, 차원, 자료형, 크기, 요소의 수를 출력한 모습이다.
import numpy as np

a = np.array([2, 3, 4])  # 넘파이로 ndarray 객체 생성

# a 객체의 형상, 차원, 요소의 자료형, 요소의 크기(byte), 요소의 수
a.shape, a.ndim, a.dtype, a.itemsize, a.size
((3,), 1, dtype('int64'), 8, 3)

 

넘파이로 array 객체 b를 생성한 후, b 객체의 shape(형태)를 출력한 모습이다. (m, n)의 형태로 나타내며, b 객체는 두 개의 열과 세 개의 행을 가진 형태임을 알 수 있다.

b = np.array([[1, 2, 3], [4, 5, 6]])  # ndarray 객체인 b 생성

b.shape
 
(2, 3)

 

다차원 배열은 파이썬 리스트와 유사하게 연산자 적용 가능. 다만 사칙연산 수행 시, 개별 원소별로 연산이 이루어진다.

a = np.array([10, 20, 30]) 
b = np.array([1, 2, 3])

a + b
array([11, 22, 33])

 

a - b
array([ 9, 18, 27])

 

a * b
array([10, 40, 90])

 

a / b
 
 
array([10., 10., 10.])

 

넘파이 배열의 데이터 타입을 지정하는 방법으로는 속성 값으로 지정하는 방법과 문자열 형식으로 속성 값을 지정하는 방법, 두 가지가 존재한다.

a = np.array([1, 2, 3, 4], dtype = np.int32)  # 속성 값으로 지정
b = np.array([1, 2, 3, 4], dtype = 'int32')  # 문자열 형식으로 속성 값 지정