파이썬 프로그래밍 시작하기: 기본 문부터 딥러닝 도구까지

파이썬 기초 학습

1. matplotlib를 활용한 시각화

matplotlib는 파이썬에서 가장 널리 사용되는 데이터 시각화 라이브러리입니다. 다양한 종류의图表를 생성할 수 있으며, 공식 샘플 갤러리에서 많은 예제를 확인할 수 있습니다.

2. 한글 폰트 설정

matplotlib에서 한글을 표시하려면 폰트 속성을 지정해야 합니다:

import matplotlib.font_manager as fm
import matplotlib.pyplot as plt

# 방법 1: 개별 요소에 폰트 지정
plt.title("라인 차트 고급 예제", fontproperties="malgun")

# 방법 2: 전역 설정 변경
plt.rcParams['font.family'] = 'Malgun'
plt.rcParams['axes.unicode_minus'] = False

3. 출력 메서드 활용

# 숫자를 연속으로 연결하여 출력
for a in range(3):
    for b in range(3):
        for c in range(3):
            print(int(str(a) + str(b) + str(c)), end=' ')

4. 조건문 활용

# 최솟값 구하기 (한 줄 조건문)
smallest = x if x < y else y

# 여러 조건 연결
result = "A" if score >= 90 else "B" if score >= 80 else "C"

5. 부동소수점 비교

import math

# 직접 비교는 오차 발생
# 0.4 - 0.3 == 0.1  # False 반환

# 올바른 비교 방법
math.isclose(0.4 - 0.3, 0.1)  # True 반환
math.isclose(0.1 + 0.2, 0.3, rel_tol=1e-9)

6. 범례(legend) 매개변수

# 기본 사용
plt.legend(loc='best')

# 상세 설정
plt.legend(loc="upper right", fontsize=8, borderaxespad=0.3, framealpha=0.5)

머신러닝 및 딥러닝 도구

7. 머신러닝 라이브러리

scikit-learn은 가장 популяр한 머신러닝 라이브러리로, 다양한 알고리즘을 제공한다.

8. SVM (서포트 벡터 머신)

주요 SVM 라이브러리:

  • LibSVM: https://www.csie.ntu.edu.tw/~cjlin/libsvm/
  • SVM-Light: http://svmlight.joachims.org/
  • Liblinear: https://www.csie.ntu.edu.tw/~cjlin/liblinear/

딥러닝 프레임워크

  1. PaddlePaddle:百度에서 개발한 딥러닝 프레임워크
    • GitHub: https://github.com/PaddlePaddle/Paddle
    • 공식사이트: https://paddlepaddle.org
  2. Caffe: 이미지 처리に特化した 딥러닝 프레임워크
    • GitHub: https://github.com/BVLC/caffe
  3. TensorFlow: Google에서 개발한 범용 딥러닝 프레임워크
    • GitHub: https://github.com/tensorflow/tensorflow
  4. Keras: 파이썬 기반 고수준 딥러닝 API
    • GitHub: https://github.com/fchollet/keras

강화학습 도구

PARL: PaddlePaddle 기반 강화학습 프레임워크

  • GitHub: https://github.com/paddlepaddle/parl
  • 지원 알고리즘: DQN, DDPG, PPO, A2C

개발 환경 설정

패키지 관리자 (pip)

# pip 업그레이드
python -m pip install --upgrade pip

# 패키지 설치
pip install numpy
pip install pandas

# 특정 버전 설치
pip install numpy==1.21.0

Conda 환경 관리

# 새 환경 생성
conda create --name myenv python=3.8

# 환경 목록 확인
conda info --envs

# 환경 활성화/비활성화
conda activate myenv
conda deactivate

# 환경 삭제
conda remove --name myenv --all

#清华大学 미러 설정
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

# 패키지 설치/제거
conda install numpy
conda remove numpy

# 버전 검색
conda search --full-name pandas

# 설치된 패키지 목록
conda list

텍스트 처리 및 데이터 조작

jieba 라이브러리 (중국어 분절)

# 설치 방법
pip install jieba

# 사용 예제
import jieba

text = "我爱Python编程"
words = jieba.cut(text)
print("/ ".join(words))

# 형태소 분석
jieba.load_userdict("custom_dict.txt")

경로 처리

# Windows 경로 처리
image_path = r'D:\python\image.jpg'

# 또는 이스케이프 문자 사용
image_path = 'D:\\python\\image.jpg'

# os.path를 활용한 경로 조작
import os
full_path = os.path.join('D:', 'python', 'image.jpg')

순열과 조합

from itertools import combinations, permutations

characters = 'ABCD'

# 조합 (순서 무관)
for item in combinations(characters, 3):
    print(''.join(item), end=' ')
print('\n' + '='*20 + '\n')

# 순열 (순서 중요)
for item in permutations(characters, 3):
    print(''.join(item), end=' ')

파일 조작

import shutil
import os

# 파일 복사
shutil.copy('source.txt', 'destination.txt')

# 디렉토리 복사
shutil.copytree('src_dir', 'dst_dir')

# 파일 삭제
os.remove('file.txt')

# 디렉토리 삭제
shutil.rmtree('dir_name')

난수 생성

import random

# 시드 설정 (재현성 보장)
random.seed(42)

# 하나의 요소 무작위 선택
choice = random.choice(['A', 'B', 'C'])

# 여러 요소 비복원 추출
sample = random.sample(range(100), 10)

# 0~1 사이 실수 난수
float_val = random.random()

# 지정 범위 내 정수 난수
int_val = random.randrange(10)

고급 주제

이미지 증강 (Image Augmentation)

imgaug 라이브러리를 사용하여 데이터 증강을 수행할 수 있습니다:

# imgaug 설치
pip install imgaug

# 사용 예제
import imgaug.augmenters as iaa

seq = iaa.Sequential([
    iaa.Fliplr(0.5),
    iaa.Affine(rotate=(-15, 15)),
    iaa.GaussianBlur(sigma=(0, 3))
])

# 이미지에 적용
images_aug = seq(images=images)

어텐션 매트릭스 시각화

  • https://medium.com/datalogue/attention-in-keras-1892773a4f22
  • https://github.com/zhaocq-nlp/Attention-Visualization
  • https://github.com/Aurelius84/SPWE

Beam Search

자연어 처리에서 시퀀스 생성 시 사용되는 디코딩 전략으로, 각 단계에서 확률이 높은複数の 후보를 유지합니다.

NumPy 배열

# NumPy 설치
pip install numpy

# 배열 생성
import numpy as np

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

# 기본 연산
print(arr * 2)
print(matrix.shape)
print(np.mean(arr))

태그: python matplotlib conda pip jieba

5월 23일 07:50에 게시됨