Python 설정

Mixed

Author

Sungkyun Cho

Published

June 21, 2024

데이터 사이언스를 위한 Python 개발 환경

몇 가지 선택지

클라우드 환경

Colab

  • 사용법: Colab Welcome
  • 클라우드 환경 vs. 구글 드라이브 mount
  • Colab AI assistant
  • 구글 드라이브의 데이터셋을 import:
pd.read_csv("drive/MyDrive/...")
  • 패키지 업데이트
!pip install --upgrade pandas numpy seaborn matplotlib statsmodels scikit-learn

로컬 환경

Python과 Conda Package Manager

Conda Cheatsheet: 기본적인 conda 명령어 요약

Miniconda 설치

Anaconda보다는 기본 패키지들이 미리 설치되지 않는 miniconda를 추천: miniconda install page

  • Windows 경우: 설치시 물어보는 “add Miniconda to your PATH variable” 옵션을 켜고 설치할 것

Shell 사용에 대해서는 아래 Command Line Tool 참고

  • Windows 경우: Anaconda의 응용 프로그램으로 등록된 Anaconda Powershell Prompt를 이용
  • Mac의 경우: 기본 terminal을 이용
  • 커서 앞에 (base)가 보이면 conda가 설치된 것
# Terminal (Mac) or Miniconda Powershell Prompt (Windows)

(base)> conda info # 콘다 정보 
(base)> conda update conda # 콘다 업데이트

Conda Environment

conda/user guide

환경 생성: miniconda에서 자체 제공하는 환경 (다른 가상환경 툴인 pyenvvenv도 있음)

(base)> conda create --name myenv  # --name 대신 -n으로 축약 가능

# 특정 버전의 파이썬과 함께 설치시
(base)> conda create --name myenv python=3.12

환경 확인

(base)> conda env list
# conda environments:
#
# base         */.../miniconda3
# myenv         /.../miniconda3/envs/myenv

환경 제거

(base)> conda env remove --name myenv

환경 activate/deactivate

(base)> conda activate myenv
(myenv)> conda deactivate

특정 환경 안의 파이썬 버전 확인

(myenv)> python --version

환경(activated) 내에서 패키지 설치 및 제거

conda/managing channels

다음을 통해 .condarc 환경파일에 configuration 추가

(base)> conda config --add channels conda-forge
(base)> conda config --set channel_priority strict  # 채널 순으로 검색, 버전 순이 아니고
# 개별적으로 채널을 선택해서 install하려면 (특정 환경에 설치하려면 아래 conda environment 참조)
(base)> conda install scipy --channel conda-forge

# pakcage가 있는 채널들
(base)> conda search scipy
# 특정 환경을 activate한 후

# Python을 update하거나 다른 버전을 설치하려면, 가령 3.12으로 업데이트 하려면
(myenv)> conda install python=3.12  # python update

# 패키지 설치
(myenv)> conda install <package name1> <package name2> ...
# 특정한 채널, conda-forge 통한 설치: --channel 대신 -c로 축약 가능
(myenv)> conda install --channel conda-forge <package name>

# 제거
(myenv)> conda remove <package name1> <package name2> ...

# 업데이트
(myenv)> conda update <package name1> <package name2> ...
(myenv)> conda update --all  # all packages

# 패키지 리스트 확인
(myenv)> conda list

환경 밖에서 특정 환경 안에 설치하려면 환경 이름 추가

(base)> conda install --name myenv <package name1>  # --name 대신 -n으로 축약 가능

pip을 이용한 패키지 설치: conda repository에 없는 패키지들을 설치하는 경우. 충돌의 우려 있음

(myenv)> pip install <package name1> <package name2> ...

수업에 필요한 기본 패키지 설치

# 수업에 필요한 기본 패키지 설치
(myenv)> conda install jupyter numpy pandas matplotlib seaborn scikit-learn statsmodels

Mac의 경우: 기본 terminal을 이용하되 기본 zsh shell 대신 다음 Oh-My-Zsh을 추천

Oh-My-Zsh!: 링크

Windows의 경우: Windows Terminal 추천

  • 설치 링크는 구글링…
  • 명령프롬프트(CMD) vs. Powershell
  • Powershell에서 conda를 사용하기 위해서는 몇 가지 설정 필요: 블로그 링크
  • 잘 안될 경우, conda 설치시 함께 설치되는 응용프로그램 콘다 powershell을 이용

Visual Studio Code

VS Code 설치

Extensions

  • Python
  • Python Extension Pack 중
    • IntelliCode
    • Python Environment Manager
  • Pylance: 문법 체크, 자동완성, …
  • Docs View
    • 안 보일시, 설정에서 language server를 default(Pylance)에서 Jedi로 바꾸면 해결
  • Copilot…

Preferences

  • Themes
  • Font, font size (notebook, markup, output)

Shortcuts

Show Command Palette: ctrl(cmd) + shift + p, 또는 F1

Cell 안과 밖에서 다르게 작동

  • undo / redo : ctrl(cmd) + z / ctrl(cmd) + shift + z
  • move: alt(option) + arrow up/down
  • copy : alt(option) + shift + arrow up/down

코드 실행 방식 3가지: ctrl/shift/alt(option) + enter

Help: Keyboard shortcuts reference의 Basic editing 참고

그 외

  • interactive mode
  • export
  • docs view: sticky mode
  • variables viewer, data viewer
  • formatter: “Black formatter”
  • snippets: 구글링…

VS Code내에서 terminal 사용

Terminal: Select Default Profile에서 선택

  • Mac: zsh
  • Windows: powershell

Jupyter Notebook/Lab

새로 만든 환경을 등록해줘야 함. 환경을 activate한 상태에서

(myenv)> ipython kernel install --user --name=myenv

환경을 삭제해도 등록시킨 kernel 이름은 삭제되지 않으니 직접 삭제.

등록된 커널 리스트를 확인

(myenv)> jupyter kernelspec list

커널 삭제

(myenv)> jupyter kernelspec remove myenv

Jupyter Notebook 또는 lab 실행

  • Anaconda 응용 프로그램을 이용해 실행하거나,

  • 쉘에서 실행하려면,

# jupytet notebook
(base)> jupyter notebook

# jupyter lab
(base)> jupyter lab

등록한 커널을 선택 후 시작

커널을 종료하려면, 쉘에서 Ctrl-C 두 번

Python Packages, Modules, Functions

Jupyter notebook 파일을 생성: filename.ipynb

import numpy as np
import pandas as pd
from numpy.linalg import inv
from numpy.linalg import inv as inverse
from numpy.linalg import inv, det
from numpy.linalg import inv as inverse, det as determinant
np.linalg?  # 함수에 대한 도움말

NumPy 패키지(package)의 linalg 모듈(module)

np.linalg  # linalg.py 파이썬 스트립트 파일

linalg 모듈 파일 안에 def으로 정의된 함수

np.linalg.inv  # 모듈 안에서 def으로 정의된 함수 inv()
np.linalg.inv?  # 함수에 대한 도움말

예를 들어, 행렬의 역행렬을 구하는 함수 inv를 사용하려면

rng = np.random.default_rng(123)  # random number generator
x = rng.standard_normal((3, 3))  # 3x3 matrix from standard normal distribution
x

어떻게 import하느냐에 따라 다른 방식으로 사용

inv(x)  # inverse matrix of x

# inv 함수를 따로 import하지 않은 경우, numpy의 linalg 모듈을 통해 사용
np.linalg.inv(x)  # same as above

주로 모듈 이름을 함께 쓰는 것이 관례인데,

  • 이는 코드의 가독성을 높이고,
  • 사용자 정의 함수와의 충돌을 방지하기 위함

모듈 안에 정의된 함수들을 확인하려면: dir() 함수

dir(np.linalg)  # 모듈 안에 정의된 함수들