본문 바로가기
Python

Numpy란 무엇인가?(넘파이의 이해)

by Glory_Choi 2022. 8. 9.
반응형

Numpy(넘파이) 소개

리스트는 많은 데이터를 관히 할 때 속도가 느리고 메모리를 많이 차지하는 단점이 있다. 배열(array)를 사용하면 적은 메모리로 많은 데이터를 빠르고 편리하게 처리 할 수 있다. 배열과 리스트는 비슷하지만 다음과 같은 점에서 다르다.

  1. 모든 원소가 같은 자료형이어야 한다.
  2. 원소의 갯수를 바꿀 수 없다.

Numpy는 수치 해석용 Python 패키지이다. 다차원의 행렬 자료구조인 ndarray를 지원하여 벡터와 행렬을 사용하는 선형대수 계산에 주로 사용된다. C로 구현된 CPython에서만 사용할 수 있다.

 

Numpy 배열 연산은 C로 구현된 내부 반복문을 사용하기 때문에 파이썬 반복문에 비해 속도가 빠르며 벡터화 연산(vectorized operation)을 이용하여 간단한 코드로도 복잡한 선형 대수 연산을 수행할 수 있다. 또한 배열 인덱싱 (array indexing)을 사용하여 간단한 코드로도 복잡한 수식을 계산할 수 있다.

 

1차원 배열 만들기

 

벡터화 연산

배열 객체는 배열의 각 원소에 대한 반복 연산을 하나의 명령어로 처리하는 벡터화 연산(vectorized operation)을 지원한다.

예를 들어 여러개의 데이터를 모두 2배 해야 하는 경우를 살펴봅니다.

리스트를 사용했을때는 for문을 이용하여 2배를 각각 처리해 줘야 합니다.

하지만 벡터화 연산을 사용하면 다음과 같이 for loop를 돌릴 필요 없이 바로 연산을 할 수 있습니다. 계산 속도도 반복문을 사용할 때에 비해서 훨씬 빠르게 처리할 수 있습니다.

참고로 일반적인 리스트 객체에 정수를 곱하면 객체의 크기가 정수배 만큼으로 증가한다.

또 벡터화 연산은 비교 연산과 논리 연산을 포함한 모든 종류의 수학 연산에 대해 적용된다. 

 

2차원 배열 반들기

ndarray 는 N-dimensional Array의 약자이다. 이름 그대로 1차원 배열 이외에도 2차원 배열, 3차원 배열 등의 다차원 배열 자료 구조를 지원한다. 2차원 배열은 행렬(matrix)이라고 하는데 행렬에서는 가로줄을 행(row)이라고 하고 세로줄을 열(column)이라고 부른다.

 

배열의 차원과 크기 알아내기

배열의 차원과 크기를 구하는 더 간단한 방법은 ndim과 shape를 이용하는 방법이 있다.

ndim은 차원의 수를 반환하고, shape는 넘파이 배열의 크기를 반환한다.

 

 

반응형

'Python' 카테고리의 다른 글

넘파이(Numpy) 구조, 차원을 변경, numpy.reshape 함수  (0) 2022.08.10