본문 바로가기
Python

Numpy.ndarray

by 코딩하는 미토콘드리아 bioinformatics 2021. 12. 26.
반응형

많은 머신러닝 알고리즘이 넘파이 기반으로 작성돼 있음은 물론이고,

이들 알고리즘의 입력 데이터와 출력 데이터를 넘파이 배열 타입으로 사용한다.

따라서, 넘파이를 이해하는 것은 파이썬 기반의 머신러닝에서 매우 중요하다. 

 

Numpy 는 Numerical Python의 약자로,

선형대수 기반의 프로그램을 지원하는 대표적인 패키지 이다.

 

먼저 넘파이 모듈을 임포트해 보겠다. 

import numpy as np

import numpy 만 입력해도 무방하지만

as np 를 추가해서 약어로 모듈을 표현해주는 게

관례이고 사용하기도 편하다.

 

넘파이 기반 데이터 타입은 ndarray 이다.

이는 한문장으로 표현하면

다차원의 배열 자료구조 클래스 이고

이를 이용해 넘파이에서

다차원 배열을 쉽게 생성하고 다양한 연산을 수행한다.

 

https://indianaiproduction.com/python-numpy-array/

넘파이 모듈을 잘 사용하기 위해서는

배열의 이해가 필요하다.

보시는 그림은 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