PYTHON

NUMPY | 일반 연산과 넘파이 연산 실행 속도 비교 / random 모듈

성장하는 쿠키의 로그 기록 2025. 1. 6. 16:29

➡️ NUMPY 기본 통계 함수

  • NUMPY 란? 
    • 다차원 배열을 (행렬) 쉽게 처리해 주는 파이썬 모듈 중 하나
    • 수학적 계산은 파이썬에서 NUMPY 모듈을 사용하는 편
#기본 통계 함수
│   ├── mean()                 # 데이터의 평균값 계산
│   ├── median()               # 데이터의 중앙값 계산
│   ├── std()                  # 데이터의 표준편차 계산
│   ├── var()                  # 데이터의 분산 계산
│   ├── sum()                  # 데이터의 합계 계산
│   ├── prod()                 # 데이터의 곱 계산
    ├──std() / mean()          # 변동계수 계산
│
├── 퍼센타일 및 백분위 함수
│   ├── percentile()           # 데이터의 특정 퍼센타일 값 계산
│   ├── quantile()             # 데이터의 특정 분위 값 계산
│
├── 최소값/최대값 관련 함수
│   ├── min()                  # 데이터의 최소값 반환
│   ├── max()                  # 데이터의 최대값 반환
│   ├── argmin()               # 최소값의 인덱스 반환
│   ├── argmax()               # 최대값의 인덱스 반환
│
├── 데이터 생성 및 처리 함수
│   ├── histogram()            # 데이터의 히스토그램 계산
│   ├── unique()               # 데이터에서 고유 값 반환
│   ├── bincount()             # 정수 배열의 값의 빈도 계산
│
├── 랜덤 데이터 생성 (통계적 실험 시 사용 가능)
│   ├── random.randn()         # 표준 정규분포를 따르는 랜덤 값 생성
│   ├── random.normal()        # 정규분포를 따르는 랜덤 값 생성
│   ├── random.randint()       # 정수 범위에서 랜덤 값 생성
│   ├── random.choice()        # 데이터에서 랜덤 샘플 추출

➡️PYTHON vs NUMPY  연산 실행 속도 비교

  • 실행 속도 비교 : 행렬(리스트 등) 수학적 계산은 numpy 모듈 사용하면 훨씬 빠르게 처리 가능 
    • 코드 작성 전 후, time.time() 메소드로 실행 전/후 시각 저장
    • 코드 작성
#일반 연산 vs numpy 연산 속도 비교
import time 
start = time.time() # 현재 시간 숫자형 값으로 출력  
## 코드
my_list = [i for i in range(10000000)]
for i in range(len(my_list)):
    my_list[i] = my_list[i] + 10
## 코드
end = time.time() # 시간 출력 
print(end= start) # 코드 실행 시간 

# array 자료형으로 처리
import numpy as np
start = time.time()

np.array(my_list) + 10 # 리스트값을 어레이로 변환후 연산 

end = time.time()
print(end-start)

➡️random 모듈 

  • np.random.rand () : 0-1 사이의 임의의 난수 출력 
  • np.random.randint(a.b) : a~(b-1) 까지의 정수를 랜덤으로 출력 
  • np.random.seed() + random()~ : 초기값 설정 
  • np.random.choice (배열,size=n,replace=T/F) : replace는 중복값 출력 허용 여부임(복원 추출), 배열 값중 size 만큼 랜덤으로 출력해주는 함수 
  • np.normal(평균,표준편차,n개) : 정규분포를 따르는 평균, 표준편차에서 n개 난수 생성
#rand
np.random.rand(n) # 난수 n 개 생성

#randint
np.random.randint(1,7) #1~6까지 정수 랜덤으로 

#seed()
np.random.seed(42) #초기 값 고정 
np.random.rand() # 0-1 사이의 임의의 함수 추출, seed 선언으로 초기값이 고정됨.

#choice()
a =[1,2,3]
np.random.choice(a, size= 2, replace = False) #a 리스트중에 임의로 2개 출력

#normal()
population = np.random.normal(170, 10, 1000)

 

 

numpy.random.choice — NumPy v2.1 Manual

Warning This function uses the C-long dtype, which is 32bit on windows and otherwise 64bit on 64bit platforms (and 32bit on 32bit ones). Since NumPy 2.0, NumPy’s default integer is 32bit on 32bit platforms and 64bit on 64bit platforms. Setting user-speci

numpy.org