[Programmers] 27. Jupyter Notebook, Markdown, Numpy 기초

illstandtall·2021년 4월 30일
0

Programmers dev course

목록 보기
27/34
post-thumbnail

오류에 대한 지적이나 질문, 토의 환영합니다. 자유롭게 댓글 남겨주세요!.!


1. Jupyert notebook

  • intertatice한 python code 작성할 수 있게 도와주는 도구입니다.
  • 공유를 위한 개발도구로 많이 사용됩니다.

Jupyter notebook 설치하기

pip으로 설치 - (python 설치되어 있다고 가정 (환경변수 조작 필요))

# 터미널에서
> pip install jupyter 			# pip을 이용해 Jupyter notebook 설치
> python -m pip install jupyter 	# pip이 설치되어 있지 않을 때, 'python -m pip'으로 pip 모듈 사용가능

> jupyter notebook 			# 실행

Jupyter notebook의 기본 구성, 단축키

셀 (Cell)

  • Code cell: In[n]로 시작 Python을 실행할 수 있는 셀
  • Markdown cell: In[n] 존재하지 않음, 마크다운을 실행할 수 있는 셀

셀의 테두리

  • 초록색 테두리: 입력 모드
  • 파란색 테두리: 명령 모드

현재 상태가 명령 모드일 때,

  • 셀 모드 변경
    • M: 마크다운 셀로 변경
    • Y: 코드 셀로 변경
  • 셀 추가하기:
    • A (Above): 현재 셀 에 새로운 셀 추가
    • B (Below): 현재 셀 아래에 새로운 셀 추가
  • 현재 셀 삭제하기: dd
  • 셀 실행
    • Ctrl/cmd + Enter: 현재 셀 실행
    • Shift + Enter: 현재 셀을 실행하고 새로운 셀 추가
  • ex) esc -> m: 코드 셀에서 빠져나와(셀 앞부분을 파란색으로 바꾸고) 셀을 마크다운 셀로 바꿉니다.

2. Markdown (.md)

  • 일반 텍스트로 서식이 있는 문서를 작성할 수 있습니다.

마크다운 사용해보기

1. Header (#)

# markdown h1
## markdown h2
### markdown h3
#### markdown h4
##### markdown h5
###### markdown h6

위 코드는 아래와 같이 보입니다.

markdown h1

markdown h2

markdown h3

markdown h4

markdown h5
markdown h6

2. Italic (*...*, _..._)

*italic*  
_also italic_

위 코드는 아래와 같이 보입니다.
italic
also italic


3. Bold (**bold**, __bold__)

non-bold  
**bold**  
__also bold__

위 코드는 아래와 같이 보입니다.

non-bold
bold
also bold


4. strikethrough (~~strikethrough~~)

나는 불닭볶음면이 ~~매워~~ 
정정: 나는 불닭볶음면이 좋아

위 코드는 아래와 같이 보입니다.

나는 불닭볶음면이 매워
정정: 나는 불닭볶음면이 좋아


5.1. unorderd list(-..., *...)

- 순서 없음
- 순서 없음
- 순서 없음
* 순서 없음

위 코드는 아래와 같이 보입니다.

  • 순서 없음
  • 순서 없음
  • 순서 없음
  • 순서 없음

## 5.2. orderd list (1. ..., 2. ..., 3. ...)

1. 순서 있음
2. 순서 있음
3. 순서 있음
4. 순서 있음  
1. 오
3. 신
5. 기

위 코드는 아래와 같이 보입니다.

  1. 순서 있음
  2. 순서 있음
  3. 순서 있음
  4. 순서 있음

3. Numpy로 숫자 다루기

  • 숫자 계산을 빠르게 할 수 있다.

Numpy 설치

  • pip install numpy

Numpy 모듈 불러오기

import numpy as np

Numpy로 연산하기

복습: 리스트

arr = [1, 'two', 3.0]

print(arr)
[1, 'two', 3.0]
  • 그러나, 리스트는 너무... 느립니다.
  • 따라서, 숫자 계산을 효율적으로 만들어 라이브러리로 제공해 놓은 Numpy를 사용합니다.

Numpy가 얼마나 빠른가 !?

List
L = range(1000)

%timeit [i**2 for i in L] # 실행속도가 얼마나 걸리는지 알 수 있게 해주는 노트북 환경의 특수한 모듈
230 µs ± 12.2 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
numpy.array
N = np.arange(1000)
%timeit N**2
1.63 µs ± 27.4 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
  • 203µs vs 1.63µs -> 엄청나게 차이가 납니다.

numpy.array

  • numpy의 Container, array (Container: 여러 자료를 담을 수 있는 자료형)

  • 1차원 배열

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

arr
array([1, 2, 3])
  • 2차원 배열
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

arr_2d
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
  • list와 출력 비교
li = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

li
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  • 출력할 때도 numpy.arraylist보다 보기 편하다

numpy.array.shape

  • array의 자료형의 차원을 반환

  • 1차원 배열

arr.shape
(3,)
  • 2차원 배열
arr_2d.shape
(3, 3)

이 글은 프로그래머스 스쿨 인공지능 데브코스 과정에서 공부한 내용을 바탕으로 정리한 글입니다.

profile
주니어

0개의 댓글