지극히 개인적인 공부 노트/파이썬(Python)

[Python] 넘파이(numpy)의 유용한 기능 정리

AS J 2021. 5. 11. 16:31

※ 해당 게시글은 파이썬과 인공지능을 공부하면서 주로 사용하는 기능을 정리한 내용입니다.

넘파이(numpy)는 대표적인 배열 라이브러리로, 고차원의 배열을 손쉽게 만들고 조작할 수 있습니다. numpy는 아래와 같이 임포트하고, 관용적으로 'np'라는 문자열로 줄여서 임포트합니다. 넘파이 배열의 핵심 부분은 C, C++과 같은 저수준 언어로 개발되어서 데이터가 아주 큰 경우엔 일반 파이썬 리스트로 작업하는 것보다 빠르고, 데이터 과학 분야에 알맞게 최적화되어 있습니다.

import numpy as np

numpy에서 주로 사용하는 함수는 다음과 같습니다.

 

1. array(): 리스트를 배열로 변환해주는 함수

a = [1, 2, 3, 4, 5, 6]
a_array = np.array(a)

2. arange(): 시작과 끝의 숫자를 지정하고, 시작 숫자부터 끝나는 숫자 이전까지 일정한 간격 만큼 증가하는 리스트를 생성하는 함수. 정수 뿐만 아니라 실수도 가능합니다.

cf) range()는 arrange()와 비슷한 기능을 하지만, 넘파이에 속한 함수가 아니며, 입력과 출력으로 정수만 가능합니다.

a = np.arange(1, 12, 2) #1부터 11까지(12 미포함) 2씩 증가하는 숫자 리스트 생성

3. random.seed(): 난수를 생성하기 위한 정수 초깃값을 지정하는 함수(함수 입력값을 지정하면, 일정한 규칙대로 랜덤하게 생성)

4. random.shuffle(): 입력되는 배열을 랜덤하게 섞는 함수

5. column_stack(): 입력 받은 리스트나 튜플을 다시 튜플로써 감싸서 입력 받으면, 이를 각각 1열부터 n열까지로 재구성해서 쌓아주는 함수.

np.column_stack([1, 2, 3], [4, 5, 6])

array([[1, 4],	#결과
       [2, 5],
       [3, 6]])

6. concatenate(): 첫 번째 차원을 따라 배열을 연결하는 함수. column_stack()와 같이 튜플로 입력 받으나, 결과는 입력 받은 리스트나 튜플, 배열을 그대로 연결한 값을 반환합니다.

7. shape: 함수보단 속성의 느낌으로, 배열의 크기를 알 수 있는 함수.

8. reshape(): 입력 받은 배열을 원하는 배열의 형태로 변환해주는 함수. 단, 원소의 개수가 변환 전과 변환 후가 같아야 오류가 발생하지 않습니다.

test_array.reshape(2, 2)	#test_array의 원소가 4개일 경우에 가능
np.reshape(test_array, (2, 2))	#위 아래 둘 다 같은 기능을 하며, 이처럼 다르게 표기 가능

9. mean()과 std(): 각각 입력 받은 데이터의 평균, 표준편차를 계산해주는 함수.

10. load(): npy 파일(넘파이 배열의 기본 저장 포맷)을 로드하는 함수.

a = np.load('파일명.npy')

11. argsort(): 입력한 배열을 작은 값부터 큰 순서대로 나열한 후 원하는 범위 값의 인덱스를 반환하는 함수.

a_index = np.argsort('배열')[:10]	#배열을 오름차순 정렬 후, 10번째 값까지의 인덱스 반환