Jupyter lab 사용
https://jupyterlab.readthedocs.io/en/stable/
https://kibua20.tistory.com/184 
https://3months.tistory.com/392 [Deep Play]
로컬에서 다운로드 받기
raw_data = pd.read_csv("./voc_train.csv")
raw_data.to_csv('./voc.csv')
from IPython.display import FileLink
FileLink('./voc.csv') 

.
로컬이 아닌, 원격서버에 Jupyter Lab이   설치되어 있다면, 
인터넷되는 어디서라도 Web Browser를 통해 Python 개발이 가능하다.  

Shortcut
Cmd+ Shift + L : 새창
< 명령모드에서> ESC : 편집모드에서 명령모드로 진입
- [ENTER ]: 명령모드에서 셀 편집
 - [A] Add :  셀 추가 위
[B] 아래 - [DD] delete
 - [M]arkdown : 셀변환
[Y] code
[R]aw Cell - Shift + J or K [ Down or Up] 셀 선택
 - Shift + [M]erge 셀합치기
 
<편집모드에서> (커서위치 기준으로)
- Ctrl + Shift + – (커서위치 기준으로) 셀나누기
 - Cmd+[ / ] (커서위치 기준 해당 라인) 주석처리 Ctrl + /
 - Cmd+[D] (커서위치 기준으로) 한줄 삭제
 - Cmd + [  또는 ]   Indentation 
 - . + TAB : 함수목록
 - Shift + TAB : 해당함수 설명
 
*브라우저 단축키 모두 없애기.
Custom Shortcut
move cell up jupyter shortcut
Settings > Advanced Settings Editor > “Keyboard Shortcuts” 
{
    "shortcuts": [
        {
            "command": "notebook:move-cell-up",
            "keys": [
                "Ctrl Shift ArrowUp"
            ],
           "selector": "body"
        },
        {
            "command": "notebook:move-cell-down",
            "keys": [
                "Ctrl Shift ArrowDown"
            ],
            "selector": ".jp-Notebook:focus"
        },
    ]
} 
 {
    // Move cell up
    "notebook:move-cell-up": {
      "selector": ".jp-Notebook:focus",
      "command": "notebook:move-cell-up",
      "keys": [
        "Ctrl Shift ArrowUp"
      ]
    },
    // Move cell down
    "notebook:move-cell-down": {
      "selector": ".jp-Notebook:focus",
      "command": "notebook:move-cell-down",
      "keys": [
        "Ctrl Shift ArrowDown"
      ]
    }
} 
추가 바로실행가능 Ipython 콘솔 창

명시적으로 매번 print()를 쓰지 않고, 연속적으로 값을 출력
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"
import numpy as np 
import pandas as pd
df = pd.DataFrame(np.random.randn(5, 3), columns=list('ABC'))
lst = np.arange(10)
df
lst
"END"
np.arange(10)**2
	A	B	C
0	-0.141083	-1.584214	0.070834
1	-0.674680	0.300282	-0.483465
2	0.216068	0.211681	-0.412534
3	-0.992280	-0.363932	2.183695
4	0.875325	0.406591	-0.509874
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
'END'
array([ 0,  1,  4,  9, 16, 25, 36, 49, 64, 81])항상 반영하기 위해서는 configuration file내에 아래 코드 넣어준다.
c.InteractiveShell.ast_node_interactivity = "all"
! %
! : 리눅스 명령어 . 독립된 shell      ex) !git clone https://github.com/open-mmlab/detection.git
% : 리눅스 명령어. 현재 shell         ex) %cd detection
Markdown font color
some *blue* text 
Jupyter Lab 매직 기능 (Magic function)
https://ipython.readthedocs.io/en/stable/interactive/magics.html 해당 링크
%lsmagic 매직 기능에 어떤것들이 있는지 출력해준다.
- %matplotlib inline 플롯을 화면 안에서 보여준다.
 - %env
- %env 모든 환경변수를 출력한다.
 - %env var 해당 이름의 환경변수를 출력한다.
 - (%env var val) or (%env var=val) 환경변수를 설정한다.
 
 - %run
- %run file_name 해당 이름의 .py 파일 또는 .ipynb 파일을 셀 안에서 실행한다.
 
 - %load
- %load source 해당 파일을 셀 안에 로드한다.
 
 - %who = will list all variables that exist in the global scope. It can be used to see what all data_frames or any other variable is there in memory.
- %who: 현재 전역 환경의 모든 변수를 리스트한다. (메모리에 어떤 변수들이 올라와 있나 확인할 수 있다.)
 - %who df: 현재 선언된 dataframe 을 볼 수 있다.
 - %whos: %who 와 비슷하지만 각 변수들에 대해 상세한 설명을 볼 수 있다.
 
 - %time 한 셀이 실행된 시간을 볼 수 있다.
 - %timeit 10만 번 실행하여 평균 시간을 잰다.
 - %writefile
- %writefile file_name 해당 파일의 셀의 아웃풋을 쓴다.
 - %writefile -a file_name 해당 파일의 셀의 아웃풋을 덧붙인다.
 
 
python using external source
global.py
If you add to .gitignore:
.ipynb_checkpoints
(no slashes anywhere), any file or directory in the repo with that name will be ignored. Paths are only checked if you include /.
From this answer you can also have a global gitignore for your computer:
git config --global core.excludesfile '~/.gitignore' echo '.ipynb_checkpoints' >> ~/.gitignore
.ipynb 변환
https://pypi.org/project/ipynb-py-convert/
설치
$pip install ipynb-py-convert
.py to .ipynb
$ipynb-py-convert mypython.py mynotebook.ipynb
셀구분  # %% 
Markdown  ”’ 을 사용한 주석
.ipynb to .py
$ipynb-py-convert mynotebook.ipynb mypython.py $jupyter nbconvert --to script mynotebook.ipynb mypython.py $jupyter nbconvert --to html mynotebook.ipynb mypython.html