[Python라이브러리] Numpy

MINJEE·2023년 8월 28일
post-thumbnail

Numpy

: 복잡한 빅 데이터의 수학적, 과학적 계산을 위해 만들어진 라이브러리(ndarray클래스)

NumPy 다양한 함수들 - Codetorial


기능

  • 반복문 없이 전체 데이터 배열 연산이 가능한 표준 수학함수를 제공함(mean(),sqrt(),std() 등)
  • 배열(array): 같은 자료형의 원소들이 연속적인형태로 구성된 자료 구조로 다량의 데이터를 그룹으로 관리하기위해 사용함

np.ndarray 클래스

: 동일한 자료형을 가지는 값들이 배열 형태로 존재
import numpy as np
arr = np.array(리스트) # 배열
type(arr) # numpy.ndarray
  • 사칙연산 가능 (내부 모든값에 직접 연산됨)
    • ex. arr + 1
  • 형태 같은 배열끼리 연산 가능
    • ex. arr1 + arr2
  • 인덱싱, 슬라이싱 가능
    • ex. arr[행범위, 열범위]

numpy 함수

  • np.array(리스트, dtype) : 리스트로 구성된 배열 생성
    • dtype=int : 데이터타입을 int형으로 생성
  • np.zeros(shape) : 0으로 구성된 배열 생성
  • np.ones(shape) : 1로 구성된 배열 생성
  • np.full(shape, n) : n으로 구성된 배열 생성
  • np.arange(시작값, 끝값, 증감) : 연속된 수치로 배열 생성

배열 함수

  • 배열.shape : 배열의 형태(행, 열)
  • 배열.size : 배열 내 요소 전 개수 (행x열)
  • 배열.dtype : 배열 내 데이터타입(자료형) 확인
  • 배열.ndim : 배열의 차원
  • 배열.reshape(a,b) : 배열을 (a,b)의 형태로 재설정
  • 배열.T : 전치(transposition) 행렬, 배열의 행과 열을 바꿔줌

배열 관련 유용한 함수들

  • np.sum(배열) : 합계 (배열.sum() : python 기본 제공 함수)
  • np.mean(배열) : 평균 (배열.mean() : 동일)
  • np.median(배열) : 중앙값
  • np.sqrt(배열) : 제곱근
  • np.abs(배열) : 절대값
  • np.unique(배열) : 배열 내 유일한 값만 출력

난수 생성 : np.random 모듈

  • np.random.rand(shape) : 0 ~ 1사이의 난수값 생성
  • np.random.randint(n, size = 개수 또는 (행,열)) : 0 ~ n-1까지 정수 난수값 size만큼 생성
    • 그냥 random라이브러리의 randint는 끝 값 포함이지만 numpy의 randint는 끝 값 미포함!!
  • np.random.seed(k) : 랜덤시드 설정 (→ 똑같은 난수를 반복해서 실행하면 동일하게 출력)

예시

# 1차원 배열
arr1 = np.array([1,2,3,4,5])
## 사칙연산 가능
arr+1
arr-10
arr*2
arr/2

# 2차원 배열
arr2= np.array([[1,2,3],[4,5,6]])
arr2.shape #(2,3)
arr2.size #6
arr2.dtype #dtype('int32')
arr2.ndim #2

# 3차원 배열
arr3=np.array([ [ [1,2],[3,4] ], [ [5,6],[7,8] ] ] )
arr3.shape #(2,2,2)
arr3.ndim #3
arr3.size #8

# 0으로 배열 생성 
arr_zeros = np.zeros((3,4))
# 1로 배열 생성 
arr_ones = np.ones((2,4,3))
# 특정값으로 배열 생성하기 
arr_full = np.full((5,5), 2) #5행 5열을 2로 채워주세요

# 난수 생성
np.random.seed(2)
np.random.randint(5, size = (2,3)) #0~4의 숫자 중 (2,3)형태의 난수 배열 생성
profile
개발, 분석 배운 내용 정리하기!

0개의 댓글