프로그래밍/IT 이것저것

Google Colab 사용법 정리 - 2.Jupyter Notebook

이자다 2023. 8. 5. 17:48
반응형

Jupyter Notebook

 

 

 

help()

  • 파이썬 객체에 대한 요약 정보와 사용법 보기
  • 기본적으로 제공되는 내장 함수
  • 함수의 사용법을 얻고 싶을 때 사용

입력

help(min)
#min 함수의 사용법 조회

출력

Help on built-in function min in module builtins:

min(...)
    min(iterable, *[, default=obj, key=func]) -> value
    min(arg1, arg2, *args, *[, key=func]) -> value
    
    With a single iterable argument, return its smallest item. The
    default keyword-only argument specifies an object to return if
    the provided iterable is empty.
    With two or more arguments, return the smallest argument.

 

 

 

 

?로 설명 보기

  • 객체 요약 정보 및 사용법이 있는 docstring 보기
  • docstring은 함수나 클래스, 모듈에 첨부할 수 있는 문자열이다

입력

max?

출력

 

입력

li = ['One', 'Two', 'Three']
li?
#내가 정의한 리스트에 대해서 값, 타입, 길이를 알려줌

출력

 

입력

li.count?
#li 내부의 메소드 사용법 질문 가능

출력

 

입력

def power(a, b):
  """a의 b승을 반환"""
  return pow(a, b)
power?
#내가 이전 셀에서 정의한 docstring이 출력된다

출력

 

입력

power??
#접근 가능한 소스코드까지 출력해서 설명함

출력

 

 

 

 

탭(tab) 자동완성

  • 객체와 모듈, 인터페이스의 내용을 자동 완성

 

num = [1, 2, 3, 4, 5]
num.append
num.clear
#메소드 자동 완성이 가능하다
#'.'찍으면 이후 사용 가능한 메소드 목록이 나온다. 거기서 원하는 메소드를 방향키로 선택해 tab을 누르면 된다.
#원하는 메소드의 첫글자를 입력하면 이에 해당하는 메소드만 출력되어 더 찾기 편하다.

 

 

 

 

와일드카드(wildcard) 매칭

  • 단어의 중간이나 마지막 글자로 매칭하여 객체나 속성 찾기

입력

*Error?
#Error로 끝나는 객체들 출력.

출력

 

입력

str.*index*?
#str에 속한 메소드 중 index와 연관된 메소드를 찾고싶다

출력

 

 

 

 

매직 명령어

  • 단어의 중간이나 마지막 글자로 매칭하여 객체나 속성 찾기

입력

#주피터 노트북은 확장자가 ipynb(ipython notebook)으로 파이썬 파일이 아니다
#원하는 파이썬 파일을 여기에 넣고 싶을 때 writefile이라는 매직 커맨드를 사용한다
#내용은 파이썬 코드를 작성하면 된다.

# %%writefile test.txt 를 작성할 때는 명령줄 밑줄에 텍스트를 작성한 것처럼
# test.py라는 파이썬 파일을 작성할 때는 밑줄에 파이썬 명령어를 작성한다.

%%writefile test.py
print('Hello Colab')

출력

Writing test.py

 

입력

%run test.py

출력

Hello Colab

 

  • 코드 실행시간 측정

입력

%%timeit?
#이 코드가 빠른지 저 코드가 빠른지 측정

출력

 

입력

%timeit li = [n ** n for n in range(10000)]

출력

4.94 s ± 531 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

 

입력

# %를 두개 붙여서 코드를 여러줄로 작성 가능
%%timeit
li = []
for n in range(10000):
  li.append(n ** n)

출력

5.49 s ± 774 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

 

 

 

 

입력과 출력 이력

  • In과 Out 객체를 통해 이전 명령어와 명령어의 출력 결과 보기

입력

In
#내가 지금까지 colab에서 사용한 명령어들 출력

출력

['',
 'In',
 'import platform \nplatform.platform()',
 "get_ipython().system('cat /etc/issue.net')\n#'!'으로 명령 프롬프트에 명령어를 입력\n#'cat(concatenate)' 명령어로 파일의 내용 출력\n#'/etc/issue.net' 는 리눅스의 배너파일이다. login 이전 줄에 이 파일에 저장된 배너를 출력한다.",
 "get_ipython().system('cat /proc/cpuinfo')\n#리눅스 운영체제에서 탑재된 CPU의 정보는 '/proc/cpuinfo'라는 가상 경로에 저장되어 있다.\n#'vender_id'는 intel, amd 등 여러 cpu 브랜드 중 하나가 출력. 클라우드 환경이기에 노트북마다 다름.",
 'get_ipython().system(\'cat /proc/meminfo\')\n#메모리의 정보가 저장된 가상경로로 파일을 읽었다.\n#"proc"는 "process information"의 줄임말이다. /proc 디렉토리에는 시스템의 여러 가지 정보와 프로세스 관련 데이터를 가상 파일 시스템으로서 제공한다. ',
 "get_ipython().system('df -h')\n#'df'는 'disk free'의 줄임말이다. 디스크의 사용량, 여유공간을 확인할 수 있다.\n#-h 옵션은 human-readable의 줄임말이다. 단위를 인간이 이해하기 쉬운 KB. MB, GB형식으로 출력한다.",
 "get_ipython().system('df')\n#이용 가능한 공간과 사용 가능한 공간을 KB 단위로 출력하여 보기 불편하다.",
 "get_ipython().system('python --version')",
 "get_ipython().system('nvidia-smi')\n#현재 GPU 확인\n#GPU를 사용하지 않을 때 - /bin/bash: line 1: nvidia-smi: command not found\n#런타임 유형 변경으로 GPU를 사용하면 아래와 같은 결과가 나온다. Tesla T4를 사용중이다.",
 "get_ipython().run_line_magic('lsmagic', '')\n#이번 실습에선 매직커맨드를 사용할 예정이라 다양한 매직 커맨드 목록을 조회해본다.\n#'ls'는 'list'의 줄임말이다.\n#'매직 커맨드(magic command)'는 IPython 인터프리터에 추가된 특수 명령어다.\n#alias 등록, 스크립트 실행, 명령어 실행 시간 확인 등의 기능이 있습니다. 매직 커맨드는 명령어 앞에 % 기호를 붙인다.",
 "get_ipython().run_cell_magic('writefile', 'NotebookTest.txt', 'text\\ntest\\njupyterNobebok\\n')",
 "get_ipython().system('cat NotebookTest.txt')",
 "from google.colab import files\nfiles.download('NotebookTest.txt')\n#Google Colab 에서 내려받고 싶은 파일을 내려받는 명령어",
 'upload = files.upload()\n#Google Colab에 파일 업로드',
 "get_ipython().system('ls')\n#파일이 제대로 업로드 되었는지 확인. 업로드한 파일과 writefile 명령어로 만든 txt 파일들이 보인다.",
 "from google.colab import drive\ndrive.mount('/content/drive')\n#내 구글 드라이브를 해당 경로로 마운트",
 "get_ipython().system('ls /content/drive')\n#잘 마운트 되었는지 확인",
 'help(min)\n#min 함수의 사용법 조회',
 "get_ipython().run_line_magic('pinfo', 'max')",
 "li = ['One', 'Two', 'Three']\nget_ipython().run_line_magic('pinfo', 'li')\n#내가 정의한 리스트에 대해서 값, 타입, 길이를 알려줌",
 "get_ipython().run_line_magic('pinfo', 'li.count')\n#li 내부의 메소드 사용법 질문 가능",
 'def power(a, b):\n  """a의 b승을 반환"""\n  return pow(a, b)',
 "get_ipython().run_line_magic('pinfo', 'power')\n#내가 이전 셀에서 정의한 docstring이 출력된다",
 "get_ipython().run_line_magic('pinfo2', 'power')\n#접근 가능한 소스코드까지 출력해서 설명함",
 "num = [1, 2, 3, 4, 5]\nnum.append\nnum.clear\n#메소드 자동 완성이 가능하다\n#'.'찍으면 이후 사용 가능한 메소드 목록이 나온다. 거기서 원하는 메소드를 방향키로 선택해 tab을 누르면 된다.\n#원하는 메소드의 첫글자를 입력하면 이에 해당하는 메소드만 출력되어 더 찾기 편하다.",
 "get_ipython().run_line_magic('psearch', '*Error')\n#Error로 끝나는 객체들 출력.",
 "get_ipython().run_line_magic('psearch', 'str.*index*')\n#str에 속한 메소드 중 index와 연관된 메소드를 찾고싶다",
 'get_ipython().run_cell_magic(\'writefile\', \'test.py\', "print(\'Hello Colab\')\\n")',
 "get_ipython().run_line_magic('run', 'test.py')",
 "get_ipython().run_line_magic('pinfo', '%%timeit')\n#이 코드가 빠른지 저 코드가 빠른지 측정",
 "get_ipython().run_line_magic('timeit', 'li = [n ** n for n in range(10000)]')",
 "get_ipython().run_cell_magic('timeit', '', 'li = []\\nfor n in range(10000):\\n  li.append(n ** n)\\n')",
 "get_ipython().run_line_magic('timeit', 'li = [n ** n for n in range(10000)]')",
 'In\n#내가 지금까지 colab에서 사용한 명령어들 출력']

 

입력

In[10]
#colab에서 작성한 30번째 셀의 명령어 출력

출력

get_ipython().run_line_magic('lsmagic', '')
#이번 실습에선 매직커맨드를 사용할 예정이라 다양한 매직 커맨드 목록을 조회해본다.
#'ls'는 'list'의 줄임말이다.
#'매직 커맨드(magic command)'는 IPython 인터프리터에 추가된 특수 명령어다.
#alias 등록, 스크립트 실행, 명령어 실행 시간 확인 등의 기능이 있습니다. 매직 커맨드는 명령어 앞에 % 기호를 붙인다.

 

입력

Out
#결과물을 전부 저장. In은 명령어, Out은 결과
#결과 앞에 번호가 붙어있다.

출력

{1: ['',
  'In',
  'import platform \nplatform.platform()',
  "get_ipython().system('cat /etc/issue.net')\n#'!'으로 명령 프롬프트에 명령어를 입력\n#'cat(concatenate)' 명령어로 파일의 내용 출력\n#'/etc/issue.net' 는 리눅스의 배너파일이다. login 이전 줄에 이 파일에 저장된 배너를 출력한다.",
  "get_ipython().system('cat /proc/cpuinfo')\n#리눅스 운영체제에서 탑재된 CPU의 정보는 '/proc/cpuinfo'라는 가상 경로에 저장되어 있다.\n#'vender_id'는 intel, amd 등 여러 cpu 브랜드 중 하나가 출력. 클라우드 환경이기에 노트북마다 다름.",
  'get_ipython().system(\'cat /proc/meminfo\')\n#메모리의 정보가 저장된 가상경로로 파일을 읽었다.\n#"proc"는 "process information"의 줄임말이다. /proc 디렉토리에는 시스템의 여러 가지 정보와 프로세스 관련 데이터를 가상 파일 시스템으로서 제공한다. ',
  "get_ipython().system('df -h')\n#'df'는 'disk free'의 줄임말이다. 디스크의 사용량, 여유공간을 확인할 수 있다.\n#-h 옵션은 human-readable의 줄임말이다. 단위를 인간이 이해하기 쉬운 KB. MB, GB형식으로 출력한다.",
  "get_ipython().system('df')\n#이용 가능한 공간과 사용 가능한 공간을 KB 단위로 출력하여 보기 불편하다.",
  "get_ipython().system('python --version')",
  "get_ipython().system('nvidia-smi')\n#현재 GPU 확인\n#GPU를 사용하지 않을 때 - /bin/bash: line 1: nvidia-smi: command not found\n#런타임 유형 변경으로 GPU를 사용하면 아래와 같은 결과가 나온다. Tesla T4를 사용중이다.",
  "get_ipython().run_line_magic('lsmagic', '')\n#이번 실습에선 매직커맨드를 사용할 예정이라 다양한 매직 커맨드 목록을 조회해본다.\n#'ls'는 'list'의 줄임말이다.\n#'매직 커맨드(magic command)'는 IPython 인터프리터에 추가된 특수 명령어다.\n#alias 등록, 스크립트 실행, 명령어 실행 시간 확인 등의 기능이 있습니다. 매직 커맨드는 명령어 앞에 % 기호를 붙인다.",
  "get_ipython().run_cell_magic('writefile', 'NotebookTest.txt', 'text\\ntest\\njupyterNobebok\\n')",
  "get_ipython().system('cat NotebookTest.txt')",
  "from google.colab import files\nfiles.download('NotebookTest.txt')\n#Google Colab 에서 내려받고 싶은 파일을 내려받는 명령어",
  'upload = files.upload()\n#Google Colab에 파일 업로드',
  "get_ipython().system('ls')\n#파일이 제대로 업로드 되었는지 확인. 업로드한 파일과 writefile 명령어로 만든 txt 파일들이 보인다.",
  "from google.colab import drive\ndrive.mount('/content/drive')\n#내 구글 드라이브를 해당 경로로 마운트",
  "get_ipython().system('ls /content/drive')\n#잘 마운트 되었는지 확인",
  'help(min)\n#min 함수의 사용법 조회',
  "get_ipython().run_line_magic('pinfo', 'max')",
  "li = ['One', 'Two', 'Three']\nget_ipython().run_line_magic('pinfo', 'li')\n#내가 정의한 리스트에 대해서 값, 타입, 길이를 알려줌",
  "get_ipython().run_line_magic('pinfo', 'li.count')\n#li 내부의 메소드 사용법 질문 가능",
  'def power(a, b):\n  """a의 b승을 반환"""\n  return pow(a, b)',
  "get_ipython().run_line_magic('pinfo', 'power')\n#내가 이전 셀에서 정의한 docstring이 출력된다",
  "get_ipython().run_line_magic('pinfo2', 'power')\n#접근 가능한 소스코드까지 출력해서 설명함",
  "num = [1, 2, 3, 4, 5]\nnum.append\nnum.clear\n#메소드 자동 완성이 가능하다\n#'.'찍으면 이후 사용 가능한 메소드 목록이 나온다. 거기서 원하는 메소드를 방향키로 선택해 tab을 누르면 된다.\n#원하는 메소드의 첫글자를 입력하면 이에 해당하는 메소드만 출력되어 더 찾기 편하다.",
  "get_ipython().run_line_magic('psearch', '*Error')\n#Error로 끝나는 객체들 출력.",
  "get_ipython().run_line_magic('psearch', 'str.*index*')\n#str에 속한 메소드 중 index와 연관된 메소드를 찾고싶다",
  'get_ipython().run_cell_magic(\'writefile\', \'test.py\', "print(\'Hello Colab\')\\n")',
  "get_ipython().run_line_magic('run', 'test.py')",
  "get_ipython().run_line_magic('pinfo', '%%timeit')\n#이 코드가 빠른지 저 코드가 빠른지 측정",
  "get_ipython().run_line_magic('timeit', 'li = [n ** n for n in range(10000)]')",
  "get_ipython().run_cell_magic('timeit', '', 'li = []\\nfor n in range(10000):\\n  li.append(n ** n)\\n')",
  "get_ipython().run_line_magic('timeit', 'li = [n ** n for n in range(10000)]')",
  'In\n#내가 지금까지 colab에서 사용한 명령어들 출력',
  'In[30]\n#colab에서 작성한 30번째 셀의 명령어 출력',
  'Out[2]',
  'Out[30]',
  'Out[31]',
  'Out[2]',
  'Out[31]',
  'Out[7]',
  'Out[6]',
  'Out[5]',
  'Out[2]',
  'In[26]\n#colab에서 작성한 30번째 셀의 명령어 출력',
  'Out'],
 2: 'Linux-5.15.109+-x86_64-with-glibc2.35',
 10: Available line magics:
%alias  %alias_magic  %autoawait  %autocall  %automagic  %autosave  %bookmark  %cat  %cd  %clear  %colors  %conda  %config  %connect_info  %cp  %debug  %dhist  %dirs  %doctest_mode  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %lf  %lk  %ll  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %lx  %macro  %magic  %man  %matplotlib  %mkdir  %more  %mv  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint  %precision  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %rep  %rerun  %reset  %reset_selective  %rm  %rmdir  %run  %save  %sc  %set_env  %shell  %store  %sx  %system  %tb  %tensorflow_version  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode

Available cell magics:
%%!  %%HTML  %%SVG  %%bash  %%bigquery  %%capture  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%shell  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.,
 25: <function list.clear()>,
 34: ['',
  'In',
  'import platform \nplatform.platform()',
  "get_ipython().system('cat /etc/issue.net')\n#'!'으로 명령 프롬프트에 명령어를 입력\n#'cat(concatenate)' 명령어로 파일의 내용 출력\n#'/etc/issue.net' 는 리눅스의 배너파일이다. login 이전 줄에 이 파일에 저장된 배너를 출력한다.",
  "get_ipython().system('cat /proc/cpuinfo')\n#리눅스 운영체제에서 탑재된 CPU의 정보는 '/proc/cpuinfo'라는 가상 경로에 저장되어 있다.\n#'vender_id'는 intel, amd 등 여러 cpu 브랜드 중 하나가 출력. 클라우드 환경이기에 노트북마다 다름.",
  'get_ipython().system(\'cat /proc/meminfo\')\n#메모리의 정보가 저장된 가상경로로 파일을 읽었다.\n#"proc"는 "process information"의 줄임말이다. /proc 디렉토리에는 시스템의 여러 가지 정보와 프로세스 관련 데이터를 가상 파일 시스템으로서 제공한다. ',
  "get_ipython().system('df -h')\n#'df'는 'disk free'의 줄임말이다. 디스크의 사용량, 여유공간을 확인할 수 있다.\n#-h 옵션은 human-readable의 줄임말이다. 단위를 인간이 이해하기 쉬운 KB. MB, GB형식으로 출력한다.",
  "get_ipython().system('df')\n#이용 가능한 공간과 사용 가능한 공간을 KB 단위로 출력하여 보기 불편하다.",
  "get_ipython().system('python --version')",
  "get_ipython().system('nvidia-smi')\n#현재 GPU 확인\n#GPU를 사용하지 않을 때 - /bin/bash: line 1: nvidia-smi: command not found\n#런타임 유형 변경으로 GPU를 사용하면 아래와 같은 결과가 나온다. Tesla T4를 사용중이다.",
  "get_ipython().run_line_magic('lsmagic', '')\n#이번 실습에선 매직커맨드를 사용할 예정이라 다양한 매직 커맨드 목록을 조회해본다.\n#'ls'는 'list'의 줄임말이다.\n#'매직 커맨드(magic command)'는 IPython 인터프리터에 추가된 특수 명령어다.\n#alias 등록, 스크립트 실행, 명령어 실행 시간 확인 등의 기능이 있습니다. 매직 커맨드는 명령어 앞에 % 기호를 붙인다.",
  "get_ipython().run_cell_magic('writefile', 'NotebookTest.txt', 'text\\ntest\\njupyterNobebok\\n')",
  "get_ipython().system('cat NotebookTest.txt')",
  "from google.colab import files\nfiles.download('NotebookTest.txt')\n#Google Colab 에서 내려받고 싶은 파일을 내려받는 명령어",
  'upload = files.upload()\n#Google Colab에 파일 업로드',
  "get_ipython().system('ls')\n#파일이 제대로 업로드 되었는지 확인. 업로드한 파일과 writefile 명령어로 만든 txt 파일들이 보인다.",
  "from google.colab import drive\ndrive.mount('/content/drive')\n#내 구글 드라이브를 해당 경로로 마운트",
  "get_ipython().system('ls /content/drive')\n#잘 마운트 되었는지 확인",
  'help(min)\n#min 함수의 사용법 조회',
  "get_ipython().run_line_magic('pinfo', 'max')",
  "li = ['One', 'Two', 'Three']\nget_ipython().run_line_magic('pinfo', 'li')\n#내가 정의한 리스트에 대해서 값, 타입, 길이를 알려줌",
  "get_ipython().run_line_magic('pinfo', 'li.count')\n#li 내부의 메소드 사용법 질문 가능",
  'def power(a, b):\n  """a의 b승을 반환"""\n  return pow(a, b)',
  "get_ipython().run_line_magic('pinfo', 'power')\n#내가 이전 셀에서 정의한 docstring이 출력된다",
  "get_ipython().run_line_magic('pinfo2', 'power')\n#접근 가능한 소스코드까지 출력해서 설명함",
  "num = [1, 2, 3, 4, 5]\nnum.append\nnum.clear\n#메소드 자동 완성이 가능하다\n#'.'찍으면 이후 사용 가능한 메소드 목록이 나온다. 거기서 원하는 메소드를 방향키로 선택해 tab을 누르면 된다.\n#원하는 메소드의 첫글자를 입력하면 이에 해당하는 메소드만 출력되어 더 찾기 편하다.",
  "get_ipython().run_line_magic('psearch', '*Error')\n#Error로 끝나는 객체들 출력.",
  "get_ipython().run_line_magic('psearch', 'str.*index*')\n#str에 속한 메소드 중 index와 연관된 메소드를 찾고싶다",
  'get_ipython().run_cell_magic(\'writefile\', \'test.py\', "print(\'Hello Colab\')\\n")',
  "get_ipython().run_line_magic('run', 'test.py')",
  "get_ipython().run_line_magic('pinfo', '%%timeit')\n#이 코드가 빠른지 저 코드가 빠른지 측정",
  "get_ipython().run_line_magic('timeit', 'li = [n ** n for n in range(10000)]')",
  "get_ipython().run_cell_magic('timeit', '', 'li = []\\nfor n in range(10000):\\n  li.append(n ** n)\\n')",
  "get_ipython().run_line_magic('timeit', 'li = [n ** n for n in range(10000)]')",
  'In\n#내가 지금까지 colab에서 사용한 명령어들 출력',
  'In[30]\n#colab에서 작성한 30번째 셀의 명령어 출력',
  'Out[2]',
  'Out[30]',
  'Out[31]',
  'Out[2]',
  'Out[31]',
  'Out[7]',
  'Out[6]',
  'Out[5]',
  'Out[2]',
  'In[26]\n#colab에서 작성한 30번째 셀의 명령어 출력',
  'Out'],
 35: "get_ipython().run_line_magic('pinfo', '%%timeit')\n#이 코드가 빠른지 저 코드가 빠른지 측정",
 36: 'Linux-5.15.109+-x86_64-with-glibc2.35',
 39: 'Linux-5.15.109+-x86_64-with-glibc2.35',
 44: 'Linux-5.15.109+-x86_64-with-glibc2.35',
 45: "get_ipython().run_line_magic('psearch', '*Error')\n#Error로 끝나는 객체들 출력."}

 

입력

Out[10]
#Out의 출력에 매겨진 번호를 따로 지정해 출력 가능.

출력

Available line magics:
%alias  %alias_magic  %autoawait  %autocall  %automagic  %autosave  %bookmark  %cat  %cd  %clear  %colors  %conda  %config  %connect_info  %cp  %debug  %dhist  %dirs  %doctest_mode  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %lf  %lk  %ll  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %lx  %macro  %magic  %man  %matplotlib  %mkdir  %more  %mv  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint  %precision  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %rep  %rerun  %reset  %reset_selective  %rm  %rmdir  %run  %save  %sc  %set_env  %shell  %store  %sx  %system  %tb  %tensorflow_version  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode

Available cell magics:
%%!  %%HTML  %%SVG  %%bash  %%bigquery  %%capture  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%shell  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

 

입력

print("In[35]: " + In[35] + "\nOut[35]: " + Out[35])
#35번째 셀의 내용과 Out에 저장된 35번째 출력 결과를 print한다

출력

In[35]: In[30]
#colab에서 작성한 30번째 셀의 명령어 출력
Out[35]: get_ipython().run_line_magic('pinfo', '%%timeit')
#이 코드가 빠른지 저 코드가 빠른지 측정

 

  • _를 이용해 이전 출력값 출력하기

입력

print(_) #언더바1
#이전 결과값 출력

출력

get_ipython().run_line_magic('lsmagic', '')
#이번 실습에선 매직커맨드를 사용할 예정이라 다양한 매직 커맨드 목록을 조회해본다.
#'ls'는 'list'의 줄임말이다.
#'매직 커맨드(magic command)'는 IPython 인터프리터에 추가된 특수 명령어다.
#alias 등록, 스크립트 실행, 명령어 실행 시간 확인 등의 기능이 있습니다. 매직 커맨드는 명령어 앞에 % 기호를 붙인다.

 

입력

print(__) #언더바2
#이전이전 결과값 출력

출력

Available line magics:
%alias  %alias_magic  %autoawait  %autocall  %automagic  %autosave  %bookmark  %cat  %cd  %clear  %colors  %conda  %config  %connect_info  %cp  %debug  %dhist  %dirs  %doctest_mode  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %lf  %lk  %ll  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %lx  %macro  %magic  %man  %matplotlib  %mkdir  %more  %mv  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint  %precision  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %rep  %rerun  %reset  %reset_selective  %rm  %rmdir  %run  %save  %sc  %set_env  %shell  %store  %sx  %system  %tb  %tensorflow_version  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode

Available cell magics:
%%!  %%HTML  %%SVG  %%bash  %%bigquery  %%capture  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%shell  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

 

입력

print(___) #언더바3
#이전이전이전 결과값 출력

출력

['', 'In', 'import platform \nplatform.platform()', "get_ipython().system('cat /etc/issue.net')\n#'!'으로 명령 프롬프트에 명령어를 입력\n#'cat(concatenate)' 명령어로 파일의 내용 출력\n#'/etc/issue.net' 는 리눅스의 배너파일이다. login 이전 줄에 이 파일에 저장된 배너를 출력한다.", "get_ipython().system('cat /proc/cpuinfo')\n#리눅스 운영체제에서 탑재된 CPU의 정보는 '/proc/cpuinfo'라는 가상 경로에 저장되어 있다.\n#'vender_id'는 intel, amd 등 여러 cpu 브랜드 중 하나가 출력. 클라우드 환경이기에 노트북마다 다름.", 'get_ipython().system(\'cat /proc/meminfo\')\n#메모리의 정보가 저장된 가상경로로 파일을 읽었다.\n#"proc"는 "process information"의 줄임말이다. /proc 디렉토리에는 시스템의 여러 가지 정보와 프로세스 관련 데이터를 가상 파일 시스템으로서 제공한다. ', "get_ipython().system('df -h')\n#'df'는 'disk free'의 줄임말이다. 디스크의 사용량, 여유공간을 확인할 수 있다.\n#-h 옵션은 human-readable의 줄임말이다. 단위를 인간이 이해하기 쉬운 KB. MB, GB형식으로 출력한다.", "get_ipython().system('df')\n#이용 가능한 공간과 사용 가능한 공간을 KB 단위로 출력하여 보기 불편하다.", "get_ipython().system('python --version')", "get_ipython().system('nvidia-smi')\n#현재 GPU 확인\n#GPU를 사용하지 않을 때 - /bin/bash: line 1: nvidia-smi: command not found\n#런타임 유형 변경으로 GPU를 사용하면 아래와 같은 결과가 나온다. Tesla T4를 사용중이다.", "get_ipython().run_line_magic('lsmagic', '')\n#이번 실습에선 매직커맨드를 사용할 예정이라 다양한 매직 커맨드 목록을 조회해본다.\n#'ls'는 'list'의 줄임말이다.\n#'매직 커맨드(magic command)'는 IPython 인터프리터에 추가된 특수 명령어다.\n#alias 등록, 스크립트 실행, 명령어 실행 시간 확인 등의 기능이 있습니다. 매직 커맨드는 명령어 앞에 % 기호를 붙인다.", "get_ipython().run_cell_magic('writefile', 'NotebookTest.txt', 'text\\ntest\\njupyterNobebok\\n')", "get_ipython().system('cat NotebookTest.txt')", "from google.colab import files\nfiles.download('NotebookTest.txt')\n#Google Colab 에서 내려받고 싶은 파일을 내려받는 명령어", 'upload = files.upload()\n#Google Colab에 파일 업로드', "get_ipython().system('ls')\n#파일이 제대로 업로드 되었는지 확인. 업로드한 파일과 writefile 명령어로 만든 txt 파일들이 보인다.", "from google.colab import drive\ndrive.mount('/content/drive')\n#내 구글 드라이브를 해당 경로로 마운트", "get_ipython().system('ls /content/drive')\n#잘 마운트 되었는지 확인", 'help(min)\n#min 함수의 사용법 조회', "get_ipython().run_line_magic('pinfo', 'max')", "li = ['One', 'Two', 'Three']\nget_ipython().run_line_magic('pinfo', 'li')\n#내가 정의한 리스트에 대해서 값, 타입, 길이를 알려줌", "get_ipython().run_line_magic('pinfo', 'li.count')\n#li 내부의 메소드 사용법 질문 가능", 'def power(a, b):\n  """a의 b승을 반환"""\n  return pow(a, b)', "get_ipython().run_line_magic('pinfo', 'power')\n#내가 이전 셀에서 정의한 docstring이 출력된다", "get_ipython().run_line_magic('pinfo2', 'power')\n#접근 가능한 소스코드까지 출력해서 설명함", "num = [1, 2, 3, 4, 5]\nnum.append\nnum.clear\n#메소드 자동 완성이 가능하다\n#'.'찍으면 이후 사용 가능한 메소드 목록이 나온다. 거기서 원하는 메소드를 방향키로 선택해 tab을 누르면 된다.\n#원하는 메소드의 첫글자를 입력하면 이에 해당하는 메소드만 출력되어 더 찾기 편하다.", "get_ipython().run_line_magic('psearch', '*Error')\n#Error로 끝나는 객체들 출력.", "get_ipython().run_line_magic('psearch', 'str.*index*')\n#str에 속한 메소드 중 index와 연관된 메소드를 찾고싶다", 'get_ipython().run_cell_magic(\'writefile\', \'test.py\', "print(\'Hello Colab\')\\n")', "get_ipython().run_line_magic('run', 'test.py')", "get_ipython().run_line_magic('pinfo', '%%timeit')\n#이 코드가 빠른지 저 코드가 빠른지 측정", "get_ipython().run_line_magic('timeit', 'li = [n ** n for n in range(10000)]')", "get_ipython().run_cell_magic('timeit', '', 'li = []\\nfor n in range(10000):\\n  li.append(n ** n)\\n')", "get_ipython().run_line_magic('timeit', 'li = [n ** n for n in range(10000)]')", 'In\n#내가 지금까지 colab에서 사용한 명령어들 출력', 'In[30]\n#colab에서 작성한 30번째 셀의 명령어 출력', 'Out[2]', 'Out[30]', 'Out[31]', 'Out[2]', 'Out[31]', 'Out[7]', 'Out[6]', 'Out[5]', 'Out[2]', 'In[26]\n#colab에서 작성한 30번째 셀의 명령어 출력', 'Out', 'Out[1]', 'Out[10]', 'In[10]\n#colab에서 작성한 30번째 셀의 명령어 출력', 'print("In[10]: "+In[10]+"\\nOut[10]: "+Out[10])', 'print("In[10]: " + In[10] + "\\nOut[10]: " + Out[10])', 'print("In[10]: " + In[35] + "\\nOut[10]: " + Out[35])', 'print("In[35]: " + In[35] + "\\nOut[35]: " + Out[35])', 'print(_)', 'print(_)', 'print(__)', 'print("In[35]: " + In[35] + "\\nOut[35]: " + Out[35])\n#35번째 셀의 내용과 Out에 저장된 35번째 출력 결과를 print한다', 'print(_)', 'print(___)']

 

입력

_10
#10번째 결과 출력
#N번째 출력값을 출력하는 것이기에 Out으로 출력되는 번호만 가능하다

출력

Available line magics:
%alias  %alias_magic  %autoawait  %autocall  %automagic  %autosave  %bookmark  %cat  %cd  %clear  %colors  %conda  %config  %connect_info  %cp  %debug  %dhist  %dirs  %doctest_mode  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %lf  %lk  %ll  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %lx  %macro  %magic  %man  %matplotlib  %mkdir  %more  %mv  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint  %precision  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %rep  %rerun  %reset  %reset_selective  %rm  %rmdir  %run  %save  %sc  %set_env  %shell  %store  %sx  %system  %tb  %tensorflow_version  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode

Available cell magics:
%%!  %%HTML  %%SVG  %%bash  %%bigquery  %%capture  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%shell  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

 

  • %history를 이용한 입력 이력 살펴보기

입력

%history?
#매직 메소드에 사용 가능한 옵션 보기

출력

 

입력

%history -n 1-7
#1번부터 7번까지의 명령어 출력

출력

   1: In
   2:
import platform 
platform.platform()
   3:
!cat /etc/issue.net
#'!'으로 명령 프롬프트에 명령어를 입력
#'cat(concatenate)' 명령어로 파일의 내용 출력
#'/etc/issue.net' 는 리눅스의 배너파일이다. login 이전 줄에 이 파일에 저장된 배너를 출력한다.
   4:
!cat /proc/cpuinfo
#리눅스 운영체제에서 탑재된 CPU의 정보는 '/proc/cpuinfo'라는 가상 경로에 저장되어 있다.
#'vender_id'는 intel, amd 등 여러 cpu 브랜드 중 하나가 출력. 클라우드 환경이기에 노트북마다 다름.
   5:
!cat /proc/meminfo
#메모리의 정보가 저장된 가상경로로 파일을 읽었다.
#"proc"는 "process information"의 줄임말이다. /proc 디렉토리에는 시스템의 여러 가지 정보와 프로세스 관련 데이터를 가상 파일 시스템으로서 제공한다.
   6:
!df -h
#'df'는 'disk free'의 줄임말이다. 디스크의 사용량, 여유공간을 확인할 수 있다.
#-h 옵션은 human-readable의 줄임말이다. 단위를 인간이 이해하기 쉬운 KB. MB, GB형식으로 출력한다.
   7:
!df
#이용 가능한 공간과 사용 가능한 공간을 KB 단위로 출력하여 보기 불편하다.

 

  • %rerun을 이용해 이전 입력 다시 실행

입력

%rerun
#이전에 사용한 명령어 실행

출력

=== Executing: ===
%history -n 1-7
#1번부터 7번까지의 명령어 출력
=== Output: ===
   1: In
   2:
import platform 
platform.platform()
   3:
!cat /etc/issue.net
#'!'으로 명령 프롬프트에 명령어를 입력
#'cat(concatenate)' 명령어로 파일의 내용 출력
#'/etc/issue.net' 는 리눅스의 배너파일이다. login 이전 줄에 이 파일에 저장된 배너를 출력한다.
   4:
!cat /proc/cpuinfo
#리눅스 운영체제에서 탑재된 CPU의 정보는 '/proc/cpuinfo'라는 가상 경로에 저장되어 있다.
#'vender_id'는 intel, amd 등 여러 cpu 브랜드 중 하나가 출력. 클라우드 환경이기에 노트북마다 다름.
   5:
!cat /proc/meminfo
#메모리의 정보가 저장된 가상경로로 파일을 읽었다.
#"proc"는 "process information"의 줄임말이다. /proc 디렉토리에는 시스템의 여러 가지 정보와 프로세스 관련 데이터를 가상 파일 시스템으로서 제공한다.
   6:
!df -h
#'df'는 'disk free'의 줄임말이다. 디스크의 사용량, 여유공간을 확인할 수 있다.
#-h 옵션은 human-readable의 줄임말이다. 단위를 인간이 이해하기 쉬운 KB. MB, GB형식으로 출력한다.
   7:
!df
#이용 가능한 공간과 사용 가능한 공간을 KB 단위로 출력하여 보기 불편하다.

 

 

 

 

셸 명령어

  • 텍스트 기반의 셸 명령어 처리
  • ! 문자를 명령어 앞에 붙여서 셸 명령어 사용 가능

 

  • ls: 디렉토리 리스트 보기

입력

!ls
#list

출력

drive  NotebookTest.txt  sample_data  test.py

 

  • pwd: 현재 경로 보기

입력

!pwd
#print working directory

출력

/content

 

  • cd: 디렉토리 변경
  • IPython에서는 임시 셸에서 실행

입력

!cd sample_data/ && ls
#cd명령이 셀에서만 적용되어 디렉토리를 변경하자마자 실행하지 않으면 다시 원상복구 됨

출력

anscombe.json		      mnist_test.csv
california_housing_test.csv   mnist_train_small.csv
california_housing_train.csv  README.md

 

  • %cd: 지속적인 디렉토리 변경

입력

%cd sample_data/

출력

/content/sample_data

 

  • echo: 화면 출력

입력

!echo "hello"

출력

hello

 

  • mkdir: 디렉토리 생성

입력

!mkdir tmp
#make directory
!ls

출력

anscombe.json		      mnist_test.csv	     tmp
california_housing_test.csv   mnist_train_small.csv
california_housing_train.csv  README.md

 

  • cat: 파일 보기

입력

!cat README.md

출력

This directory includes a few sample datasets to get you started.

*   `california_housing_data*.csv` is California housing data from the 1990 US
    Census; more information is available at:
    https://developers.google.com/machine-learning/crash-course/california-housing-data-description

*   `mnist_*.csv` is a small sample of the
    [MNIST database](https://en.wikipedia.org/wiki/MNIST_database), which is
    described at: http://yann.lecun.com/exdb/mnist/

*   `anscombe.json` contains a copy of
    [Anscombe's quartet](https://en.wikipedia.org/wiki/Anscombe%27s_quartet); it
    was originally described in

    Anscombe, F. J. (1973). 'Graphs in Statistical Analysis'. American
    Statistician. 27 (1): 17-21. JSTOR 2682899.

    and our copy was prepared by the
    [vega_datasets library](https://github.com/altair-viz/vega_datasets/blob/4f67bdaad10f45e3549984e17e1b3088c731503d/vega_datasets/_data/anscombe.json).

 

  • cp: 디렉토리/파일 복사

입력

!cp README.md tmp/
#tmp 폴더에 현재 폴더의 README.md 파일 복사
!ls tmp/

출력

README.md

 

  • rm: 디렉토리/파일 삭제

입력

!rm -r tmp
#tmp 디렉토리와 내용물을 전부 지워버리는 명령어
# -r 옵션은 반복적으로 전부 지워버리는 옵션이다
!ls
#tmp 디렉토리가 사라졌다

출력

anscombe.json		      mnist_test.csv
california_housing_test.csv   mnist_train_small.csv
california_housing_train.csv  README.md
반응형