카테고리 없음

[스나이퍼팩토리] 한컴AI아카데미(26.06.15) NumPy

cd-record 2026. 6. 15. 18:01

 

NumPy(Numerical Python)

1. NumPy란??

  • NumPy는 Numerical Python의 약자로 과학 및 공학 분야에서 사용되는 오픈 소스 파이썬 라이브러리이다.
  • NumPy 라이브러리에는 다차원 배열 및 행렬 데이터 구조가 포함되어있다.
  • NumPy는 배열로 저장된 값에 대한 수학 연산을 수행하는데 사용된다.
  • 특징
    • 다차원 배열(Array) 지원
    • 빠른 수학 연산 가능
    • 벡터화(Vectorization) 지원
    • Pandas, Matplotlib 등 데이터 분석 라이브러리의 기반
  • 설치
pip install numpy
 
  • 사용
import numpy as np
 

2. 리스트와 NumPy 배열 차이

일반 리스트

a = [1, 3, 5]
b = [2, 4, 6]

print(a + b)
 

결과

[1, 3, 5, 2, 4, 6]
 

리스트는 연결(Concatenation)만 수행한다.

NumPy 배열

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

print(a + b)
print(a * b)
 

결과

[3 7 11]
[2 12 30]
 

NumPy는 같은 위치의 원소끼리 계산한다.

이를 벡터화 연산(Vectorized Operation) 이라고 한다.

 

시험/실무 중요

a + b
a - b
a * b
a / b
 

모두 한 번에 계산 가능


3. ndarray(n차원 배열) 생성하기

  • 스칼라: 0차원 배열
  • 벡터: 1차원 배열
  • 매트릭스(행렬): 2차원 배열
  • 텐서: 3차원 배열

array()

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

zeros()

모든 값을 0으로 생성

np.zeros(5)
 

결과

[0. 0. 0. 0. 0.]
 

ones()

모든 값을 1로 생성

np.ones(5)
 

empty()

빈 배열 생성

np.empty(5)
 

초기값은 랜덤 쓰레기값

arange()

범위 생성

np.arange(5)
 

결과

[0 1 2 3 4]
 
범위 생성
np.arange(2,20,3)
 

결과

[ 2 5 8 11 14 17 ]
 

linspace()

균등 간격 생성

np.linspace(0,100,num=5)
 

결과

[  0.  25.  50.  75. 100.]
 

 


4. 데이터 타입 확인

arr = np.array([2,4,6,8])

print(arr.dtype)
 

결과

int64
 

Upcasting

서로 다른 자료형이 있으면 자동 형변환

arr = np.array(['서울', '부산', 123])
 

결과

['서울' '부산' '123']
 

숫자가 문자열로 변환된다.


5. 배열 정보 확인

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

shape

배열 형태

arr.shape
 

결과

(2,3)
 

2행 3열

ndim

차원 수

arr.ndim
 

결과

2
 

size

전체 원소 수

arr.size
 

결과

6
 

6. 배열 차원 이해하기

0차원 (Scalar)

np.array(12)
 

1차원 (Vector)

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

2차원 (Matrix)

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

3차원 (Tensor)

np.array([
 [[1,2,3],[4,5,6]],
 [[7,8,9],[10,11,12]]
])
 

7. 인덱싱

1차원

arr = np.array([2,4,6,8])

print(arr[0])
print(arr[-1])
 

결과

2
8
 

2차원

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

print(arr[1,1])
 

결과

3
 

3차원

arr[1,1,2]
 

처럼

[깊이, 행, 열]
 

순서로 접근한다.


8. 슬라이싱

arr = np.array([10,11,12,13,14,15])
 

앞 3개

arr[:3]
 

4번부터 끝

arr[4:]
 

중간만

arr[2:5]
 

9. 조건 필터링

조건 검색

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

print(arr[arr > 3])
 

결과

[4 5]
 

짝수 찾기

arr[arr % 2 == 0]
 

결과

[2 4]
 

범위 검색

arr[(arr > 3) & (arr < 9)]
 

⭐ 중요

&
|
 

사용

and
or
 

사용 불가


10. 통계 함수

평균

np.mean(arr)
 

합계

np.sum(arr)
 

최대값

np.max(arr)
 

최소값

np.min(arr)
 

NaN 제외 평균

np.nanmean(arr)
 

⭐ 데이터 분석에서 자주 사용


11. axis 이해하기

scores = np.array([
 [85,90,88,95],
 [92,87,85,89],
 [78,85,91,87]
])
 

axis=0 (행축): 세로 방향 (열끼리 묶음)

열 기준 계산

np.mean(scores, axis=0)
 

결과

과목별 평균
 

axis=1 (열축): 가로 방향 (행끼리 묶음)

행 기준 계산

np.mean(scores, axis=1)
 

결과

학생별 평균
 

⭐ 외우기

axis=0 → 세로
axis=1 → 가로
 

12. reshape()

배열 형태 변경

arr = np.arange(1,13)

arr.reshape(3,4)
 

결과

3행 4열
 
배열 형태 변경
arr.reshape(2,6)
 

결과

2행 6열
 

13. flatten()

다차원 배열 → 1차원 배열

arr.flatten()
 

14. np.where()

조건에 따라 값 변경

np.where(arr > 5, "합격", "불합격")
 

결과

조건 참 → 합격
조건 거짓 → 불합격
 

실제 활용

재고 관리

status = np.where(
    inventory >= 30,
    "충분",
    "부족"
)
 

** 실무에서 가장 많이 쓰는 NumPy 함수 TOP 10

함수용도
np.array() 배열 생성
np.arange() 범위 생성
np.linspace() 균등 간격 생성
np.zeros() 0 배열
np.ones() 1 배열
np.mean() 평균
np.sum() 합계
np.where() 조건 처리
np.reshape() 형태 변경
np.nanmean() NaN 제외 평균

 

 

 

 

느낀점

 

오늘은 numpy에 대해 배웠다. 데이터를 만지는데 기초에 들어섰다. 예전에 학교 수업을 들으면서 잠깐 사용한 기억은 있지만 그 당시 너무 기초만 사용해보았고 너무 오래되었던 기억이라 새로 한다는 생각으로 수업을 따라가야겠다.

 

 

 

 

 

 

 

 

 

 

 

 

 

——————————————————————————

본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 (B-log) 리뷰로 작성 되었습니다.