Jupyter lab 매직명령어 & 단축키
주피터 랩(노트북)을 사용할 때 매직명령어 ( Magic commands )는 유용한 기능들을 제공한다. 유용한 명령어들은 어떤 것들이 있는지, 어떻게 사용하는지 알아본다.
주피터 랩 vs 주피터 노트북
주피터 노트북은 Python(IPython), R등의 데이터 과학에 사용되는 언어를 사용할 수 있는 웹 기반(web-based) 상호작용 환경을 제공한다.
주피터 랩은 노트북 환경을 포함하여 더 나은 사용자 인터페이스를 제공하는 차세대 노트북 환경이다.
개발환경 설치
pip install jupyterlab
# 주피터 랩 실행
jupyter-lab
! 크롬 웹브라우저에서 주피터 랩을 실행할 것을 추천한다.
주피터 랩 단축키 모음
매직명령어란 ( Magic commands )
Magic command는 IPython kernel에서 제공되는 명령어이다. 주피터 랩은 IPython kernel을 사용하므로 Magic command를 사용할 수 있는데 디렉토리를 생성, 이동하거나 파일을 생성할 수 있고 Python파일을 Load하는 기능들을 제공한다. Magic command는 %, %% 키워드를 사용하여 실행할 수 있다.
%는 Line magic으로 부르며 한 줄 안에서 명령어 실행이 시작되고 종료된다. %%는 Cell magic으로 부르며 노트북의 Cell안에서 명령어 실행이 시작되고 종료된다.
위 Line과 Cell의 차이점은 아래 기능들을 살펴보면서 알아보자.
pwd
# 현재 작업 디렉토리 확인
%pwd
# OUTPUT
'c:\\python\\data_science\\Exam'
mkdir
# 디렉토리 생성
%mkdir inner
cd
#디렉토리 이동
%cd inner
# OUTPUT
c:\python\data_science\Exam\inner
%cd ../
# OUTPUT
c:\python\data_science\Exam
history
# Magic command 실행 이력 조회
%history
# OUTPUT
%pwd
%mkdir inner
%cd inner
%cd ../
%hisory
%history
%history -n
# OUTPUT
1: %pwd
2: %mkdir inner
3: %cd inner
4: %cd ../
5: %hisory
6: %history
7: %history -n
write
- Cell Magic( %% )으로 write명령을 호출하여 dummy.py를 만든다.
%%writefile dummy.py
# Data
import numpy as np
import pandas as pd
# Visualization
import matplotlib.pyplot as plt
def say_hello(message='hello'):
print(message)
if __name__ == '__main__':
print('Invoked dummy.py')
load
- 현재 노트북의 라인넘버를 지정하여 해당 Cell의 코드를 가져오거나 외부 파일 코드를 가져올 수 있다.
- 위에서 작성한 dummy.py를 load한다.
- 실행 후 해당 명령어는 주석처리 된다.
run
# 위에서 write로 작성한 dummy.py를 실행한다.
%run dummy.py
# OUTPUT
Invoked dummy.py
#run으로 실행된 dummy.py의 리소스가 현재 노트북에 등록된다.
say_hello('Hello world')
# OUTPUT
Hello world
time
- 코드의 실행시간을 출력한다.
import numpy as np
rand = np.random.randint(100, size=10000)
%time print(np.mean(rand))
49.803
Wall time: 1.03 ms
%%time
def web_scraping(url):
import urllib3
http = urllib3.PoolManager()
r = http.request('GET', url)
if r.status == 200:
print(f'Succeed connection: {url}')
return r
data = web_scraping('http://www.daum.net')
Succeed connection: http://www.daum.net
Wall time: 82.8 ms
timeit
- time과 다르게 반복 횟수, 실행 횟수를 지정할 수 있다.
- 매개변수 -n ( 반복 횟수 ), -r ( 실행 횟수 )
- 반복/실행 횟수는 미 지정시 실행 횟수는 기본 7번 실행한다. 반복횟수는 통계데이터가 충분할때까지 적당히 반복한다.
- 각 실행 횟수(r)에서 반복(n)되는 최상의 결과를 도출하여 평균, 표준편차를 출력한다.
%%timeit -n2 -r1
url_list = ['http://www.daum.net', 'http://www.naver.com', 'http://www.google.com']
for url in url_list:
web_scraping(url)
Succeed connection: http://www.daum.net
Succeed connection: http://www.naver.com
Succeed connection: http://www.google.com
Succeed connection: http://www.daum.net
Succeed connection: http://www.naver.com
Succeed connection: http://www.google.com
453 ms ± 0 ns per loop (mean ± std. dev. of 1 run, 2 loops each)
pip
- 콘솔을 열어 pip명령을 실행할 필요 없이 노트북내에서 실행가능하다.
%pip list
%pip install requests
'python' 카테고리의 다른 글
Python3, url 인코딩하는 이유, 인코딩/디코딩 처리 (0) | 2021.04.19 |
---|---|
Python - pip 설치 라이브러리 및 Path 확인, 버전 업데이트 하기 (0) | 2021.03.25 |
Python - 멀티스레드 사용, 웹 스크래핑 비동기 처리 ( pandas_reader 주식 데이터 스크랩 ) (0) | 2021.02.24 |
Python( mariaDB, MySql ) - DB접속, 데이터 조회/변경 하기 ( Pandas DataFrame -> DB -> DataFrame ) (0) | 2021.02.22 |
Python - datetime 날짜 한국시간(timezone) 설정, naive vs aware datetime 이해 (0) | 2021.02.09 |