많은 머신러닝 알고리즘이 넘파이 기반으로 작성돼 있음은 물론이고,
이들 알고리즘의 입력 데이터와 출력 데이터를 넘파이 배열 타입으로 사용한다.
따라서, 넘파이를 이해하는 것은 파이썬 기반의 머신러닝에서 매우 중요하다.
Numpy 는 Numerical Python의 약자로,
선형대수 기반의 프로그램을 지원하는 대표적인 패키지 이다.
먼저 넘파이 모듈을 임포트해 보겠다.
import numpy as np
import numpy 만 입력해도 무방하지만
as np 를 추가해서 약어로 모듈을 표현해주는 게
관례이고 사용하기도 편하다.
넘파이 기반 데이터 타입은 ndarray 이다.
이는 한문장으로 표현하면
다차원의 배열 자료구조 클래스 이고
이를 이용해 넘파이에서
다차원 배열을 쉽게 생성하고 다양한 연산을 수행한다.
넘파이 모듈을 잘 사용하기 위해서는
배열의 이해가 필요하다.
보시는 그림은 1차원에서 3차원까지의 다차원 배열을 보여주는 그림이다.
이는 다음 장에서 자세하게 다루도록 하겠다. 우선 눈에 익히도록 하자.
넘파이의 array ( ) 함수에 파이썬의 리스트를 넣으면 ndarray 클래스 객체,
즉 배열로 변환해 준다.
생성된 ndarray 배열의 크기,
즉 행과 열의 수를 튜플로 가지고 있으며 이를 shape 변수로 확인 가능하다.
array1 = np.array([1,2,3])
print('array1 type:', type(array1))
print('array1 array 형태 : ', array1.shape)
[output]
array1 type: <class 'numpy.ndarray'>
array1 array 형태 : (3,)
array2 = np.array([[1,2,3], [2,3,4]])
print('array2 type: ' , type(array2))
print('array2 array 형태 : ' , array2.shape)
[output]
array2 type: <class 'numpy.ndarray'>
array2 array 형태 : (2, 3)
array3 = np.array([[1,2,3]])
print('array3 type:' ,type(array3))
print('array3 array 형태 :', array3.shape)
[output]
array3 type: <class 'numpy.ndarray'>
array3 array 형태 : (1, 3)
이 처럼 np.array( ) 사용법은 매우 간단하다.
ndarray로 변환을 원하는 객체를 인자로 입력하면 ndarray 로 변환한다.
ndarray.shape는 배열의 차원과 크기를 튜플 형태로 나타내 준다.
array1.shape 는 (3, 1) 이다.
이는 1차원 배열로 3개의 데이터를 가지고 있음을 뜻한다.
array2.shape 는 (2, 3) 이다.
이는 2차원 배열로 2개의 로우와 3개의 컬럼으로 구성된, 2 * 3 = 6 개의 데이터를 가지고 있음을 뜻한다.
array3.shape 는 (1, 3) 이다.
이는 2차원 배열로 1개의 로우와 3개의 컬럼으로 구성된, 1 * 3 = 3 개의 데이터를 가지고 잇음을 뜻한다.
( array1.shape 와 동일한 데이터 건수를 가지고 있지만,
각각 1차원 과 2차원 배열임을 shape변수로 명확하게 나타내고 있다.)
ndarray.ndim 을 사용하면 배열의 차원을 확인 할 수 있다.
print('array1: {:0}차원, array2: {:1}차원, array3:{:2}차원'.format(array1.ndim, array2.ndim, array3.ndim))
[output]
array1: 1차원, array2: 2차원, array3: 2차원
#리스트 []는 1차원이고, 리스트의 리스트 [[]]는 2차원 으로 차원과 크기를 쉽게 표현할 수 있다.
데이터를 다루다 보면 차원의 배열을 변환해야 하거나
변환 하지 않아서 오류가 발생하는 경우가 있을 수 있다.
다음에 reshape( ) 함수를 설명하면서 차원의 변환에 대해서 다시 언급 하겠다.
Reference
1. https://indianaiproduction.com/python-numpy-array/
Python NumPy array - Create NumPy ndarray (multidimensional array)
Python NumPy array is a collection of a homogeneous data type. It is most similar to the python list. The array() use to create NumPy ndarray.
indianaiproduction.com
2. 파이썬 머신러닝 완벽가이드 위키북스 데이터 사이언스 시리즈
'Python' 카테고리의 다른 글
python 으로 csv 파일 합치기 (0) | 2022.01.04 |
---|---|
Numpy 인덱싱 (indexing) (0) | 2022.01.03 |
Numpy.reshape ( -1 ) (0) | 2022.01.02 |
Numpy.reshape (0) | 2021.12.28 |
Numpy.arange, zeros, ones (0) | 2021.12.26 |