AI딥러닝/Python

파이썬 라이브러리_numpy(수치,행렬) 예제

Ystory96 2026. 1. 29. 11:17

1. 배열 생성 (Creation)

import numpy as np

 

# 리스트로 배열 생성

arr = np.array([1, 2, 3, 4, 5])

 

# 0 또는 1로 채워진 배열 (형태 지정)

zeros = np.zeros((2, 3)) # 23열의 0

ones = np.ones((3, 3)) # 33열의 1

 

# 연속된 숫자 배열

range_arr = np.arange(0, 10, 2) # 0부터 10 미만까지 2씩 증가

linspace_arr = np.linspace(0, 1, 5) # 0부터 1까지 일정한 간격으로 5개 생성

 


2. 배열의 형태 변경 (Reshaping)

import numpy as np

 

# 1차원 배열을 2차원(3x4)으로 변경

a = np.arange(12)

reshaped = a.reshape(3, 4)

 

# -1을 사용하면 다른 차원에 맞춰 자동으로 계산됨

auto_reshaped = a.reshape(-1, 2) # 행은 알아서 계산하고 열은 2로 고정

 

# 차원 늘리기 (Slicing 활용)

expanded = a[np.newaxis, :] # (1, 12) 형태로 변경


3. 인덱싱과 슬라이싱 (Indexing & Slicing)

import numpy as np

 

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

# 특정 행/열 추출

first_row = arr2d[0, :] # 첫 번째 행 전체

second_col = arr2d[:, 1] # 두 번째 열 전체

 

# 불리언 인덱싱 (필터링)

mask = arr2d > 3

filtered = arr2d[mask] # 3보다 큰 값만 추출: [4, 5, 6]

print(filtered)


4. 통계 및 연산 (Math & Stats)

코드 기능
np.sum(arr) 전체 요소의 합계
np.mean(arr) 전체 요소의 평균
np.std(arr) 표준 편차
np.max(arr)np.min(arr) 최댓값 / 최솟값
np.argmax(arr) 최댓값이 있는 위치(인덱스) 반환

 


5. 브로드캐스팅 (Broadcasting)

서로 다른 크기의 배열끼리 연산할 때 자동으로 크기를 맞춰주는 기눙

 

import numpy as np

a = np.array([1, 2, 3])

b = 2

# 배열의 각 요소에 2가 더해짐

result = a + b # [3, 4, 5]

print(result)


6. 난수 생성 (Random)

import numpy as np

# 0~1 사이의 균일 분포 난수 (2x3 크기)

rand_val = np.random.rand(2, 3)

# 표준 정규 분포 난수

randn_val = np.random.randn(2, 3)

# 특정 범위 내 정수 난수

randint_val = np.random.randint(0, 10, size=(5,))

print(result)


7. np.vstack (Vertical Stack)_배열 수직으로 쌓기

import numpy as np

 

# 두 개의 1차원 배열

a = np.array([1, 2, 3])

b = np.array([4, 5, 6])

 

# 위아래로 쌓기

v_result = np.vstack((a, b))

 

print(v_result)

# 출력:

# [[1 2 3]

# [4 5 6]]

# (2, 3) 형태의 2차원 행렬이 됨


8. np.hstack (Horizontal Stack)_배열 옆으로 쌓기

import numpy as np

 

# 두 개의 1차원 배열

a = np.array([1, 2, 3])

b = np.array([4, 5, 6])

 

# 옆으로 이어 붙이기

h_result = np.hstack((a, b))

 

print(h_result)

# 출력: [1 2 3 4 5 6]

# 1차원 배열끼리 hstack을 하면 옆으로 길게 붙은 1차원 배열이 됨