『비전공자도 이해할 수 있는 챗GPT』,
『비전공자도 이해할 수 있는 AI 지식』
10만 베스트셀러를 기록한
세상에서 가장 이해하기 쉬운 챗GPT 교양서

HOME » Python & Data Science 101

Python & Data Science 101

입문자를 위한 Python & Data Science 101 강의 노트입니다.
자세한 설명은 발표에서 다루었으며, 노트에는 핵심 키워드만 정리해두었습니다.

코드란 무엇인가

  • 반도체로 만든 트랜지스터: 0 또는 1
    • 아이폰 트랜지스터 개수
  • 인간이 사용하는 10진법은 2진 논리 연산으로 표현 가능 by 클로드 섀넌
  • 반도체로 언어를 계산할 수 있는 이유: 숫자로 바꾸는 방법을 고안했기 때문

“Winter is coming”을 출력하는 기계어:

출처1

어셈블리어:

section .text
  global _start

_start:
  mov eax, 4
  mov ebx, 1
  mov ecx, msg
  mov edx, len
  int 0x80

  mov eax, 1
  mov ebx, 0
  int 0x80

section .data
msg db 'Winter is coming', 0xA
len equ $ - msg

C:

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Winter is coming\n");
    return 0;
}

자바:

public class WinterIsComing {
  public static void main(String[] args) {
    System.out.println("Winter is coming");
  }
}

파이썬:

print("Winter is coming")

파이썬 철학

(기계 중심) 어셈블리 → C → C++ → 자바 → 파이썬 (사람 중심)

실행 속도와 사용 편의성 사이에서 선택이 필요할 때 각 언어의 디자인 선택 기준은?

파이썬은 문제를 해결하는 가장 단순한 한 가지 방법이 있다.

import this

파이썬 위상

  • 1989년 네덜란드, 귀도 반 로섬이 크리스마스에 시작한 프로젝트

옛날 (제가 어릴 때 aka 20세기):

  • 교육용: BASIC
  • 업무용: COBOL
  • 과학용: C, FORTRAN

지금:

  • 교육용: PYTHON
  • 업무용: PYTHON
  • 박사들이 논문 쓸 때도 PYTHON

파이썬 버전

  • Python 1.0: 1994년 1월
  • Python 2.0: 2000년 10월
  • Python 3.0: 2008년 12월
  • Python 3.14.5: 2026년 5월 현재

major.minor.patch
메이저 버전 간에는 하위호환성 유지

파이썬 개발 환경

직접 설치 x 나중에 설치하고 싶다면 윈도우 x

윈도우에서는 WSL2 추천. 파이썬을 제대로 활용하고 싶다면 기본적인 리눅스 사용법은 익히는 걸 추천

실습

구글 코랩

  • Runtime: 리눅스 VM, 사용량, 비용
    • 파이썬의 REPL 승계 → 주피터 노트북, 매우 혁신적인 줄 단위 평가
  • Variables: 뒤에 다시 얘기
  • Terminal: 샘플 디렉토리, CSV 설명
  • 코랩 구조: 셀
!ls
!uname
!cat /etc/os-release
!python --version
print("Winter is coming.")
"Winter is coming."

코랩에서는 print() 생략 가능

1 + 1
4802 * 8308
"love" * 10
1 * 10
'1' * 10
0.1 + 0.2

몇 자리까지 계산 가능할까?

# 완벽함은 더 보탤 것이 없을 때가 아니라, 더 뺄 것이 없을 때 이루어진다.

주석 예시: DNA Router의 main.py

변수, 자료형

Variables 확인, Data Type type()

a = 1
b = 2
c = a + b

name = "Sang Park"
orphan_fee = 200
teddy_bear_fee = 121.8
total = orphan_fee + teddy_bear_fee

int는 몇 비트일까? 얼마나 큰 수까지 저장이 가능할까?

문자열

name = "Sang Park"
name[:4]
name[5:]
name[2:4]
name[5]
name[-1]
len(name)

C는 물론 C++, Java에서도 찾아볼 수 없는 강력한 기능

복합 자료형

Composite Data Type

# 리스트
a = [1, 2, 3]

# 딕셔너리
b = {"A": 1, "B": 2, "C":3}
a
len(a)
a[1]
b
b['D']
b['C']

이 또한 C++에서는 STL, 자바에서는 JCF에서 따로 지원하는 매우 강력한 기능을 기본 탑재

출력문

한 가지만 기억 f-string

print(f'What is your name? {name}')
c = 999999
d = 99.89999
f'{c:,}'
f'{d:.2f}'
f'{1 + 1}'

조건문

Conditional Statements

x = 5

if x < 0:
  print('negative')
elif x == 0:
  print('zero')
elif x > 1:
  print('positive')
else:
  print('one')

비교 연산자Comparison Operator

x == 1
x != 5

반복문

Loop Statements

for i in range(10):
  print(i)

반복문에서는 관례상 i,j,k 사용. 수학에서 함수를 관례상 y=f(x)로 쓰는 것과 비슷. 들여쓰기 매우 중요

C 코드와 비교

for (int i = 0;i < 10;i++) {
  printf("%d\n", i);
}

리스트 반복

stocks = ['fb', 'aapl', 'nflx', 'goog']
for stock in stocks:
  print(stock.upper())

실습: 1부터 10까지 숫자의 제곱을 출력하는 반복문 작성

제곱을 처리하는 지수 연산자Exponentiation Operator는?

어떤 일을 10번 반복하는 법, 변수는 필요 없음

for _ in range(10):
  print('안녕!')

while 문: 조건에 따라 반복

x = 10
while (x > 0):
  print(x)
  x = x - 1

함수

grades = [90, 85, 74]
prices = [15000, 12000, 25000, 38000, 50000]
print(sum(grades) / len(grades))
print(sum(prices) / len(prices))

반복 x

수학에서 볼 수 있는 가장 기본적인 형태: y = f(x)

출처2

f(x):
  y = sum(x) / len(x)
  return y

print(f(grades))
print(f(prices))
def average(value):
  return sum(value) / len(value)

print(average(grades))
print(average(prices))

입출력값이 필요없을때

def print_banner():
  print("=======")
  print("  안녕  ")
  print("=======")

print_banner()
print_banner()
print_banner()

실습: 원금과 연 이자, 운용 햇수를 입력받아 만기 시 환급받는 금액을 소수점 아래 2자리까지만 계산하는 함수 작성

def calc_compound_interest(principal, rate, years):
  ...

패키지

(작은 범위) 함수 < 클래스 < 모듈 < 패키지 (큰 범위)

정확한 비유는 아니지는 않지만 패키지 = 함수 모음

기본 패키지는 바로 import로 사용 가능

import random
random.randint(1, 5)

다른 사람이 만든 패키지를 설치해서 사용 가능

옛날에는 일일이 찾아다니며 패키지를 구해와서 설치해야 했으나 이제는 pip로 통합 저장소에서 손쉽게 다운로드 및 설치 가능

!pip install pandas

import pandas
data = {
    "키": [170, 180, 190],
    "몸무게": [75, 60, 100]
}
print(data)

df = pandas.DataFrame(data)
print(df)

Pandas는 MIT에서 수학을 전공하고 투자 운용 회사에 근무하던 Wes McKinney가 글로벌 거시경제 및 신용 거래 전략을 연구하기 위해 2008년에 개발을 시작한 파이썬 패키지

엑셀에 Sheet가 있다면 Pandas에는 DataFrame. Pandas는 데이터 과학계의 엑셀이다.

설치된 패키지

!pip list

데이터 과학

엑셀로 CSV 데이터 만들기: 이름, 성별, 나이, 키, 몸무게

읽어봅시다:

import pandas as pd

df = pd.read_csv('data.csv')

DataFrame 다양한 조작, 명령어 잘 모를 때는 Gemini 활용

df = pd.read_csv('data.csv', index_col='이름')
df['키'].mean()
df['키'].median()
df['키'].mean() + df['몸무게'].mean()
sum(df['성별'] == '남성')
df.loc['박상길']
df.iloc[3]
df[df['나이'] == 24]
df[[True, True, False, False, False]]
df.sort_values(by='나이')

np.float() 값의 의미는?

과학계산 패키지 NumPy pip install numpy: 선형대수(행렬 등), 배열 전체 연산, 통계, 푸리에 변환(신호 처리, 주파수 분석) 등 고급 과학 연산 지원

코랩에는 이미 Pandas, NumPy 등 유명 패키지는 모두 기본으로 설치되어 있음

x = df['키'].mean() + df['몸무게'].mean()
x = x.item()

import numpy as np
x = np.float64(x)

시각화

기술 통계학Descriptive Statistics, 통계학의 중요한 두 축 중 하나. 여기서 기술은 Technology 아니라 설명Descriptive을 의미

sample_data에 있는 california housing 정보 이용 위치 정보 시각화. 지도 패키지 = Folium, 평균 소득이 가장 높은/낮은 동네 시각화

for index, row in df.sample(1000).iterrows():
    folium.CircleMarker(
        location=[row['latitude'], row['longitude']],
        radius=2,
        color='blue',
    ).add_to(m)
m
df.plot(kind='scatter', x='longitude', y='latitude')
df.plot(kind="scatter", 
             x="longitude", 
             y="latitude", 
             c="median_house_value", 
)

DataFrame:

df.head()
df.sample(10)
df
df.shape

df.hist('median_income')
df['housing_median_age'].value_counts().plot(kind='bar')

추가로 참고할 만한 내용: 캘리포니아 주택 가격

주가 정보 실습

FinanceDataReader 우리나라에서 만든 금융 정보 패키지를 활용해봅니다.

!pip install finance-datareader
import FinanceDataReader as fdr

df = fdr.DataReader('000660')
df.plot(kind='line', y='Close')

한 plot에 두 종목 동시 표현

_, ax = plt.subplots(figsize=(12, 6))

FinanceDataReader 이용해서 퇴직연금 백테스팅 사이트도 만들어봄

정리

파이썬을 실무에서 잘 사용하기 위해서는 외부 패키지 잘 활용 필요

  • FinanceDataReader: 금융 정보
    • Pandas: 데이터 조작 데이터 과학계의 엑셀
      • NumPy: 과학계산
      • Matplotlib: 그래프 시각화
  • Folium: 지도 시각화

서로 필요한 부분은 알아서 외부 패키지 상호 참조한다.

시각화 참고 자료: 사다리 게임, 절대 걸리지 않는 법 8년 전에 적은 글인데, 통계청에서 교육 자료로 활용함

  1. <데이터 경영을 위한 파이썬> 

  2. https://wikidocs.net/24 

Recent Updates:
2026/05/15 초안 작성
자바 알고리즘 인터뷰 파이썬 알고리즘 인터뷰

카카오 코딩 테스트 출제위원이 직접 집필한,
리트코드(LeetCode) 문제로 풀어보는,
구글, 마이크로소프트, 네이버, 카카오
코딩 테스트 완벽 가이드
『자바 알고리즘 인터뷰』,
『파이썬 알고리즘 인터뷰』

© 2000 - Sang Park Except where otherwise noted, content on this site is licensed under a CC BY-NC 4.0.
This site design was brought from Distill. Logo and wiki background image was brought from Bear.