파이썬 λ§ˆμŠ€ν„°ν•˜κΈ° : Jupyter

Posted by Euisuk's Dev Log on May 8, 2023

파이썬 λ§ˆμŠ€ν„°ν•˜κΈ° : Jupyter

원본 κ²Œμ‹œκΈ€: https://velog.io/@euisuk-chung/파이썬-μ‹œκ°ν™”-λ§ˆμŠ€ν„°ν•˜κΈ°-Jupyter

Jupyter λ…ΈνŠΈλΆ (Jupyter Notebook)μ΄λž€?

Jupyter λ…ΈνŠΈλΆμ€ 데이터 λΆ„μ„μ΄λ‚˜ κ³Όν•™ 연ꡬ 등에 μœ μš©ν•œ λŒ€ν™”ν˜• μ›Ή 기반 μ½”λ“œ μ‹€ν–‰ ν™˜κ²½μž…λ‹ˆλ‹€. JupyterλŠ” Julia, Python, R λ“± λ‹€μ–‘ν•œ μ–Έμ–΄λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. λ³Έ μ‹œκ°ν™” κ²Œμ‹œκΈ€μ€ μ£Όν”Όν„° λ…ΈνŠΈλΆ ν™˜κ²½μ—μ„œ μž‘μ„±λ  것이기 λ•Œλ¬Έμ— 이에 λŒ€ν•΄μ„œ κ°€λ³κ²Œ ν•œλ²ˆ 정리해보고 λ„˜μ–΄κ°€λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€ :)

Jupyter λ…ΈνŠΈλΆ μ„€μΉ˜

Jupyter λ…ΈνŠΈλΆμ„ μ‚¬μš©ν•˜λ €λ©΄ λ¨Όμ € μ„€μΉ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€. μ„€μΉ˜ 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  1. Python μ„€μΉ˜: λ¨Όμ € Python을 μ„€μΉ˜ν•΄μ•Όν•©λ‹ˆλ‹€. Python 곡식 μ‚¬μ΄νŠΈμ—μ„œ μ΅œμ‹  버전을 λ‹€μš΄λ‘œλ“œν•˜μ—¬ μ„€μΉ˜ν•©λ‹ˆλ‹€.
  2. Jupyter λ…ΈνŠΈλΆ μ„€μΉ˜: JupyterλŠ” pipλ₯Ό μ΄μš©ν•˜μ—¬ μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν„°λ―Έλ„μ—μ„œ λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.
1
$ pip install jupyter

Jupyter λ…ΈνŠΈλΆ μ‹€ν–‰

Jupyter λ…ΈνŠΈλΆμ„ μ‹€ν–‰ν•˜λŠ” 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  1. ν„°λ―Έλ„μ—μ„œ jupyter notebook을 μž…λ ₯ν•©λ‹ˆλ‹€.
  2. μ›Ή λΈŒλΌμš°μ €μ—μ„œ http://localhost:8888을 μ—½λ‹ˆλ‹€.
  3. Jupyter λ…ΈνŠΈλΆμ„ μ‹€ν–‰ν•  λ””λ ‰ν† λ¦¬λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.
  4. μƒˆλ‘œμš΄ λ…ΈνŠΈλΆμ„ μƒμ„±ν•©λ‹ˆλ‹€.

Jupyter λ…ΈνŠΈλΆ μ‚¬μš©

μƒˆλ‘œμš΄ λ…ΈνŠΈλΆμ„ μƒμ„±ν•˜λ©΄ μ…€(Cell)μ΄λΌλŠ” λ‹¨μœ„λ‘œ μ½”λ“œλ₯Ό μž…λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 셀은 μ½”λ“œ μ‹€ν–‰μ˜ μ΅œμ†Œ λ‹¨μœ„μž…λ‹ˆλ‹€.

셀에 μ½”λ“œλ₯Ό μž…λ ₯ν•˜κ³  μ‹€ν–‰ν•˜λŠ” 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  1. μƒˆλ‘œμš΄ 셀을 μΆ”κ°€ν•˜λ €λ©΄ + λ²„νŠΌμ„ ν΄λ¦­ν•©λ‹ˆλ‹€.
  2. 셀에 μ½”λ“œλ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.
  3. 셀을 μ‹€ν–‰ν•˜λ €λ©΄ Shift + Enterλ₯Ό λˆ„λ¦…λ‹ˆλ‹€.
  4. μ‹€ν–‰ κ²°κ³Όκ°€ 좜λ ₯λ©λ‹ˆλ‹€.

Jupyter λ…ΈνŠΈλΆ 단좕킀

Jupyter λ…ΈνŠΈλΆμ—μ„œλŠ” λ‹€μ–‘ν•œ 단좕킀λ₯Ό μ œκ³΅ν•˜μ—¬ λΉ λ₯΄κ²Œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 쀑 λͺ‡ κ°€μ§€ μ£Όμš” 단좕킀λ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€.

  • Shift + Enter: ν˜„μž¬ μ…€ μ‹€ν–‰ 및 λ‹€μŒ μ…€λ‘œ 이동
  • Ctrl + Enter: ν˜„μž¬ μ…€ μ‹€ν–‰
  • Ctrl + z: μž…λ ₯ μ·¨μ†Œ
  • Ctrl + y : μž…λ ₯ 볡ꡬ (ctrl + z λ°˜λŒ€)
  • Alt + Enter: ν˜„μž¬ μ…€ μ‹€ν–‰ ν›„ μƒˆλ‘œμš΄ μ…€ μΆ”κ°€
  • Esc: μ…€ νŽΈμ§‘ λͺ¨λ“œ μ’…λ£Œ
  • Enter: μ…€ νŽΈμ§‘ λͺ¨λ“œ μ§„μž…
  • a: ν˜„μž¬ μ…€ μœ„μ— μƒˆλ‘œμš΄ μ…€ μΆ”κ°€
  • b: ν˜„μž¬ μ…€ μ•„λž˜μ— μƒˆλ‘œμš΄ μ…€ μΆ”κ°€
  • dd: ν˜„μž¬ μ…€ μ‚­μ œ
  • z: μ‚­μ œν•œ μ…€ 볡ꡬ
  • y: μ½”λ“œ μ…€λ‘œ λ³€κ²½
  • m: λ§ˆν¬λ‹€μš΄ μ…€λ‘œ λ³€κ²½
  • Shift + m: μ„ νƒν•œ 셀듀을 ν•˜λ‚˜λ‘œ ν•©μΉ˜κΈ°
  • Shift + Tab: 도움말 확인
  • Tab: ν•¨μˆ˜ μžλ™μ™„μ„±
  • Ctrl + Shift + -: ν˜„μž¬ μ»€μ„œ μœ„μΉ˜μ—μ„œ μ…€ λΆ„ν• 

μ£Όμš” κΈ°λŠ₯ 및 μ‚¬μš© μ‹œ μ£Όμ˜μ‚¬ν•­

μ…€ μ’…λ₯˜

Jupyter λ…ΈνŠΈλΆμ—μ„œλŠ” μ½”λ“œ μ…€(Code Cell)κ³Ό λ§ˆν¬λ‹€μš΄ μ…€(Markdown Cell)을 μ‚¬μš©ν•©λ‹ˆλ‹€. μ½”λ“œ μ…€μ—λŠ” 파이썬, R, Julia λ“± λ‹€μ–‘ν•œ μ–Έμ–΄μ˜ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ§ˆν¬λ‹€μš΄ μ…€μ—λŠ” λ¬Έμ„œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ½”λ“œμ…€

μ½”λ“œμ…€(Code Cell)은 μ£Όν”Όν„° λ…ΈνŠΈλΆμ—μ„œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” λΆ€λΆ„μž…λ‹ˆλ‹€. μ½”λ“œμ…€μ—λŠ” 파이썬, R, Julia λ“± λ‹€μ–‘ν•œ μ–Έμ–΄μ˜ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ½”λ“œμ…€μ—μ„œ μž‘μ„±ν•œ μ½”λ“œλŠ” Shift + Enter λ˜λŠ” Ctrl + Enterλ₯Ό 눌러 μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ‹€ν–‰ κ²°κ³ΌλŠ” μ…€ μ•„λž˜μͺ½μ— 좜λ ₯λ©λ‹ˆλ‹€.

μ½”λ“œμ…€μ—μ„œ μ‹€ν–‰ν•œ μ½”λ“œλŠ” 이후에 λ‹€μ‹œ μ‹€ν–‰ν•˜μ§€ μ•Šμ•„λ„ κ²°κ³Όκ°€ 남아 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, λ…ΈνŠΈλΆμ„ λ‹«μ•˜λ‹€κ°€ λ‹€μ‹œ 열어도 μ‹€ν–‰ κ²°κ³Όκ°€ κ·ΈλŒ€λ‘œ 남아 μžˆμŠ΅λ‹ˆλ‹€.

λ§ˆν¬λ‹€μš΄μ…€

λ§ˆν¬λ‹€μš΄μ…€(Markdown Cell)은 μ£Όν”Όν„° λ…ΈνŠΈλΆμ—μ„œ λ¬Έμ„œλ₯Ό μž‘μ„±ν•˜λŠ” λΆ€λΆ„μž…λ‹ˆλ‹€. λ§ˆν¬λ‹€μš΄μ…€μ—μ„œλŠ” HTML ν˜•μ‹μœΌλ‘œ λ¬Έμ„œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ§ˆν¬λ‹€μš΄μ…€μ—μ„œ μž‘μ„±ν•œ λ¬Έμ„œλŠ” 셀을 μ‹€ν–‰ν•œ 결과둜 좜λ ₯λ©λ‹ˆλ‹€. λ§ˆν¬λ‹€μš΄μ…€μ—μ„œ μž‘μ„±ν•œ λ¬Έμ„œλŠ” HTML ν˜•μ‹μœΌλ‘œ λ³€ν™˜λ˜μ–΄ 좜λ ₯되기 λ•Œλ¬Έμ—, λ‹€μ–‘ν•œ ν˜•μ‹μ˜ λ¬Έμ„œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ£Όμš”ν•œ λ§ˆν¬λ‹€μš΄ λ¬Έλ²•μœΌλ‘œλŠ” 제λͺ©, λ³Όλ“œμ²΄, 이타릭체, λͺ©λ‘, 링크, 이미지 등이 μžˆμŠ΅λ‹ˆλ‹€.

νŒ¨ν‚€μ§€ μ„€μΉ˜

Jupyter λ…ΈνŠΈλΆμ—μ„œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•  λ•ŒλŠ” !pip install λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, matplotlib νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 μž…λ ₯ν•©λ‹ˆλ‹€.

1
!pip install matplotlib

파일 μ €μž₯

Jupyter λ…ΈνŠΈλΆμ—μ„œ μž‘μ—…ν•œ νŒŒμΌμ€ .ipynb ν™•μž₯자둜 μ €μž₯λ©λ‹ˆλ‹€. λ…ΈνŠΈλΆμ„ μ €μž₯ν•  λ•ŒλŠ” Ctrl + Sλ₯Ό μ΄μš©ν•˜κ±°λ‚˜, λ©”λ‰΄μ—μ„œ File - Save and Checkpointλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.

파일 내보내기

Jupyter λ…ΈνŠΈλΆμ—μ„œ μž‘μ„±ν•œ νŒŒμΌμ„ λ‹€λ₯Έ μ‚¬λžŒκ³Ό κ³΅μœ ν•˜κ±°λ‚˜ λ°±μ—…μš©μœΌλ‘œ μ‚¬μš©ν•˜λ €λ©΄ νŒŒμΌμ„ 내보내야 ν•©λ‹ˆλ‹€. νŒŒμΌμ„ 내보낼 λ•ŒλŠ” λ©”λ‰΄μ—μ„œ File - Download asλ₯Ό μ„ νƒν•˜μ—¬ μ›ν•˜λŠ” ν˜•μ‹μœΌλ‘œ μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λŒ€ν‘œμ μΈ 내보내기 ν˜•μ‹μœΌλ‘œλŠ” HTML, PDF, Markdown, Python, Notebook 등이 μžˆμŠ΅λ‹ˆλ‹€.

μ—λŸ¬ 처리

Jupyter λ…ΈνŠΈλΆμ—μ„œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ μ—λŸ¬κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•ŒλŠ” μ—λŸ¬ λ©”μ‹œμ§€λ₯Ό ν™•μΈν•˜κ³ , μ½”λ“œλ₯Ό μˆ˜μ •ν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν•΄μ•Ό ν•©λ‹ˆλ‹€.

컀널 μž¬μ‹œμž‘

Jupyter λ…ΈνŠΈλΆμ—μ„œλŠ” 컀널(Kernel)μ΄λΌλŠ” ν”„λ‘œμ„ΈμŠ€κ°€ μ½”λ“œ 싀행을 λ‹΄λ‹Ήν•©λ‹ˆλ‹€. 컀널을 μž¬μ‹œμž‘ν•˜λ©΄ μ‹€ν–‰ 쀑인 μ½”λ“œκ°€ λͺ¨λ‘ μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€. 컀널을 μž¬μ‹œμž‘ν•˜λ €λ©΄ λ©”λ‰΄μ—μ„œ Kernel - Restartλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.

마무리

μ΄μƒμœΌλ‘œ Jupyter λ…ΈνŠΈλΆμ˜ 단좕킀와 μ£Όμš” κΈ°λŠ₯, μ‚¬μš© μ‹œ μ£Όμ˜μ‚¬ν•­μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€. Jupyter λ…ΈνŠΈλΆμ„ μ‚¬μš©ν•˜λ©΄ μ½”λ“œμ™€ λ¬Έμ„œλ₯Ό ν•˜λ‚˜μ˜ νŒŒμΌμ— μž‘μ„±ν•˜μ—¬ μ‰½κ²Œ κ³΅μœ ν•˜κ³  관리할 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 데이터 뢄석, κ³Όν•™ 연ꡬ, λ³΄κ³ μ„œ μž‘μ„± λ“±μ—μ„œ μœ μš©ν•˜κ²Œ ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.



-->