상세 컨텐츠

본문 제목

[Python] Numpy 패키지

Python라이브러리

by Na느님 2023. 9. 6. 16:32

본문

  • 작성일 9월 14일
Numpy란 수학 및 과학 연산에 특화된 선형대수 패키지이다.

 

 

Numpy란?

Numpy란 수학 및 과학 연산에 특화된 파이썬 패키지로, 벡터, 행렬 등 수치 연산을 수행하는 선형대수(Linear Algebra) 패키지이다.

내부적으로는 C언어로 구현되어 있어 파이썬 치고는 연산속도가 빠른 편이다.

 

Numpy 설치

import numpy as np를 실행해 보고, Numpy패키지가 없다고 뜬다면 먼저 설치를 해 주어야 한다.

설치는 다음 명령어를 실행하면 된다.

pip install numpy

그 후 임포트는 import numpy as np로 하면 된다. 관습적으로 np로 사용한다.

 

Numpy 자료형

Numpy의 핵심 자료형은 벡터(배열)나 행렬을 표현하는 numpy.ndarray이다.

(주의!) numpy.ndarray의 elements는 기본적으로 자료형이 같다!

 

 

Numpy 용어 정리

3 4 7 2
0 9 6 3
1 2 6 5

element: 원소를 의미하며 위 행렬에서 3, 4, 7, 2, 0, 9 등등을 의미한다.

row: 행 이라고 부르며 가로줄 하나를 행 한개 라고 한다.

column: 열 이라고 부르며 세로줄 하나를 열 한개 라고 한다.

axis: 행렬이 전개된? 정도를 말한다. 행 또는 열 하나만 2 이상이면 axis는 1이고 행과 열이 둘다 2 이상이면 axis 는 2이다. 행렬이 입체적인 상자모양? 이 되면 axis는 3이다.

 

 

numpy.ndarray의 멤버변수들

넘파이 행렬은 멤버변수들을 사용해서 다양한 정보를 알 수 있다.

<ndarray_obj>.shape: 각 축의 크기를 말한다. 쉽게 말해 행의 갯수, 열의 갯수 등을 말한다.

<ndarray_obj>.ndim: 축의 갯수를 말한다. 행과 열이 둘 다 2개 이상이면 값은 2이고, 행 또는 열 둘중 하나만 2개 이상이면 값은 1이 된다.

<ndarray_obj>.dtype: 이 행렬의 element의 자료형을 말한다.

<ndarray_obj>.itemsize: 이 행렬의 element의 자료형의 크기를 byte로 표현한다.

<ndarray_obj>.size: 총 element의 갯수를 말한다.

 

 

numpy.ndarray 객체 생성하기

np.array(<n_dimension_list>): 가장 기본적인 ndarray객체 생성 방법으로, list를 넣어주면 그대로 ndarray 객체를 반환해 준다.

np.empty(<dimensions>): 모든 element가 NULL인 행렬을 반환한다.

(참고) <dimensions>는 소괄호에 콤마로 axis값을 구분한다. 예를들어 2행3열 행렬을 만드려면 <dimensions>를 (2, 3)으로 표현한다.

np:zeros(<dimensions>): 모든 element가 0인 행렬을 반환한다. (영행렬)

-> zeros대신 ones함수를 쓰면 모든 element가 1이다.

np.linspace(<init>, <final>, <num_of_elements>): 이것은 <init>값 부터 <final>값까지 일정한 간격을 유지하도록 element들을 채운다. 눈금을 매기는 행위를 생각하면 이해가 쉽다. <num_of_elements>는 눈금의 갯수를 의미한다.

 

 

numpy.ndarray 객체 접근

넘파이의 행렬의 element는 list자료형과 동일하게 대괄호를 나열하는 방식으로도 접근할 수 있고,

하나의 대괄호 안에 콤마(,)로 구분하여 접근할 수도 있다.

e.g.) arr_1[0][:1]

arr_1[0, :1]

 

numpy.ndarray 객체 수정, 병합, 분할

<준비중>

 

 

numpy.ndarray 연산

덧셈기호(+): 행렬덧셈을 할 수 있다.

뺄셈기호(-): 행렬뺄셈을 할 수 있다.

<numpy.ndarray>.sum(): 모든 elements의 합

<numpy.ndarray>.sum(axis=<n>[, keepdims=T/F]): 특정 axis를 기준으로 하는 각 줄마다의 원소들의 합. axis=0이면 각 열의 합, 1이면 각 행의 합이다.

keepdims옵션은 출력의 결과가 차원을 유지할 지 말지를 결정한다. 기본값은 False.

<numpy.ndarray>.min(): 가장 작은 element

<numpy.ndarray>.max(): 가장 큰 element

<numpy.ndarray>.argmax(): 가장 큰 element의 index값을 반환

<numpy.ndarray>.reshape(<dimensions>): axis의 갯수, axis의 값을 재조정한다.

<numpy.ndarray>.T: 전치행렬을 담고있다.

<numpy.ndarray>@<numpy.ndarray>: 행렬 내적.

<numpy.ndarray>*<n>: 행렬의 스칼라배

 

 

'Python라이브러리' 카테고리의 다른 글

Matplotlib 패키지  (0) 2023.09.06
Scikit-learn패키지  (0) 2023.09.06

관련글 더보기