【DSW Gallery】Jupyter magic command usage skills
Jupyter マジックコマンドの使い方
Jupyter Notebook では、Python コードの実行だけでなく、マジックコマンド (Magic Command) を使用して、標準的なデータ分析におけるさまざまな一般的な課題を簡潔に解決できます。マジックコマンドには 2 種類あります。
• 行マジック (line magic) は単一の % プレフィックスで示され、1 行の入力に対して動作します
• セルマジック (cell magic) は二重の %% プレフィックスで示され、複数行の入力に対して動作します
マジックコマンドには多くの種類があり、%lsmagic コマンドですべての利用可能なマジックコマンドを確認できます。
%ls magic
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 %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%。 %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %% python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.
この記事では、いくつかの一般的なマジックコマンドを紹介します。その他のマジックコマンドについては、各自で探索してみてください。
マジックコマンドを使用したファイル操作
%%writefile コマンドをコードの前に追加することで、セルの内容をファイルに出力できます。
%%writefile script.py
import numpy as np
def random_nparray():
print(np. random. rand(3,2))
random_nparray()
Writing script.py
%pycat を使用して指定したファイルの内容を表示します。
%pycat script.py
import numpy as np
def random_nparray():
print(np. random. rand(3,2))
random_nparray()
%run マジックコマンドを使用して、Jupyter Notebook で Python ファイルを実行します。
%run script.py
[[0.40436084 0.71671436]
[0.40652354 0.14977982]
[0.40079174 0.74159821]]
変数管理
%who、%who_ls、%whos コマンドを使用して、現在の Jupyter Notebook で定義されている変数とその情報を確認できます。違いは表示される詳細レベルにあります。
%who_ls
['np', 'random_nparray']
%who
np random_nparray
%whos
Variable Type Data/Info
-----------------------------------------
np modulekages/numpy/__init__.py'>
random_nparray function
%xdel を使用して指定した変数を削除できます。
%xdel np
%who
random_nparray
%reset を使用して、現在の環境内のすべての変数をクリアします。
%reset
%who
Interactive namespace is empty.
カーネル環境のパッケージ管理
%pip マジックコマンドを使用して、現在実行中のカーネルに対応する Python 仮想環境内のパッケージを管理します。
%pip install で新しい Python パッケージをインストールした後、現在のカーネルを再起動する必要があります。
%pip install tdqm
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting tdqm
Downloading https://mirrors.aliyun.com/pypi/packages/5a/38/58c9e22b95e98666fe29f35e217ab6126a03798dadf3f4f8f3e5f898510b/tdqm-0.0.1.tar.gz (1.4 kB)
Preparing metadata (setup.py) ... ?25ldone
?25hRequirement already satisfied: tqdm in /home/pai/lib/python3.6/site-packages (from tdqm) (4.64.0)
Requirement already satisfied: importlib-resources in /home/pai/lib/python3.6/site-packages (from tqdm->tdqm) (5.4.0)
Requirement already satisfied: zipp>=3.1.0 in /home/pai/lib/python3.6/site-packages (from importlib-resources->tqdm->tdqm) (3.6.0)
Building wheels for collected packages: tdqm
Building wheel for tdqm (setup.py) ... ?25ldone
?25h Created wheel for tdqm: filename=tdqm-0.0.1-py3-none-any.whl size=1319 sha256=a08573330ae5b0310db3fda329c82cbbff6807652542c76933111066cf215eeb
Stored in directory: /root/.cache/pip/wheels/64/bb/39/82c59ab975b19dc6cc2f99bb6034b69cbbae2f130ac112471d
Successfully built tdqm
Installing collected packages: tdqm
Successfully installed tdqm-0.0.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behavior with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Note: you may need to restart the kernel to use updated packages.
%pip show tdqm
Name: tdqm
Version: 0.0.1
Summary: Alias for typos of tqdm
Home-page: https://github.com/tqdm/tqdm
Author:
Author-email:
License: MPLv2.0
Location: /home/pai/lib/python3.6/site-packages
Requires: tqdm
Required-by:
Note: you may need to restart the kernel to use updated packages.
実行時間
%time コマンドを使用して、関数の実行時間を記録します。
import numpy as np
%time np.random.normal(size=10)
CPU times: user 527 µs, sys: 135 µs, total: 662 µs
Wall time: 634 µs
array([ 0.15190477, -0.13989631, -1.94123265, 0.76655039, -1.70196434,
-0.21320566, -0.30997543, 1.34570534, -0.37875918, 0.30126323])
%timeit コマンドを使用して、複数回の実行を通じてコードの実行速度を評価し、実行時間の平均値と標準偏差を算出します。例を示します。
import numpy as np
%timeit np.random.normal(size=1000)
42.3 µs ± 919 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
このコマンドは、コード実行の安定性やループ処理を評価したい場合に便利です。
%pinfo
以下のコードスニペットでは、シンプルなオブジェクトを初期化し、%pinfo を使用してその詳細を取得します。
val = 100
%pinfo val
Type: int
String form: 100
Docstring:
int(x=0) -> integer
int(x, base=10) -> integer
Convert a number or string to an integer, or return 0 if no arguments
are given. If x is a number, return x.__int__(). For floating point
numbers, this truncates towards zero.
If x is not a number or if base is given,
Jupyter Notebook では、Python コードの実行だけでなく、マジックコマンド (Magic Command) を使用して、標準的なデータ分析におけるさまざまな一般的な課題を簡潔に解決できます。マジックコマンドには 2 種類あります。
• 行マジック (line magic) は単一の % プレフィックスで示され、1 行の入力に対して動作します
• セルマジック (cell magic) は二重の %% プレフィックスで示され、複数行の入力に対して動作します
マジックコマンドには多くの種類があり、%lsmagic コマンドですべての利用可能なマジックコマンドを確認できます。
%ls magic
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 %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%。 %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %% python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.
この記事では、いくつかの一般的なマジックコマンドを紹介します。その他のマジックコマンドについては、各自で探索してみてください。
マジックコマンドを使用したファイル操作
%%writefile コマンドをコードの前に追加することで、セルの内容をファイルに出力できます。
%%writefile script.py
import numpy as np
def random_nparray():
print(np. random. rand(3,2))
random_nparray()
Writing script.py
%pycat を使用して指定したファイルの内容を表示します。
%pycat script.py
import numpy as np
def random_nparray():
print(np. random. rand(3,2))
random_nparray()
%run マジックコマンドを使用して、Jupyter Notebook で Python ファイルを実行します。
%run script.py
[[0.40436084 0.71671436]
[0.40652354 0.14977982]
[0.40079174 0.74159821]]
変数管理
%who、%who_ls、%whos コマンドを使用して、現在の Jupyter Notebook で定義されている変数とその情報を確認できます。違いは表示される詳細レベルにあります。
%who_ls
['np', 'random_nparray']
%who
np random_nparray
%whos
Variable Type Data/Info
-----------------------------------------
np module
random_nparray function
%xdel を使用して指定した変数を削除できます。
%xdel np
%who
random_nparray
%reset を使用して、現在の環境内のすべての変数をクリアします。
%reset
%who
Interactive namespace is empty.
カーネル環境のパッケージ管理
%pip マジックコマンドを使用して、現在実行中のカーネルに対応する Python 仮想環境内のパッケージを管理します。
%pip install で新しい Python パッケージをインストールした後、現在のカーネルを再起動する必要があります。
%pip install tdqm
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting tdqm
Downloading https://mirrors.aliyun.com/pypi/packages/5a/38/58c9e22b95e98666fe29f35e217ab6126a03798dadf3f4f8f3e5f898510b/tdqm-0.0.1.tar.gz (1.4 kB)
Preparing metadata (setup.py) ... ?25ldone
?25hRequirement already satisfied: tqdm in /home/pai/lib/python3.6/site-packages (from tdqm) (4.64.0)
Requirement already satisfied: importlib-resources in /home/pai/lib/python3.6/site-packages (from tqdm->tdqm) (5.4.0)
Requirement already satisfied: zipp>=3.1.0 in /home/pai/lib/python3.6/site-packages (from importlib-resources->tqdm->tdqm) (3.6.0)
Building wheels for collected packages: tdqm
Building wheel for tdqm (setup.py) ... ?25ldone
?25h Created wheel for tdqm: filename=tdqm-0.0.1-py3-none-any.whl size=1319 sha256=a08573330ae5b0310db3fda329c82cbbff6807652542c76933111066cf215eeb
Stored in directory: /root/.cache/pip/wheels/64/bb/39/82c59ab975b19dc6cc2f99bb6034b69cbbae2f130ac112471d
Successfully built tdqm
Installing collected packages: tdqm
Successfully installed tdqm-0.0.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behavior with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Note: you may need to restart the kernel to use updated packages.
%pip show tdqm
Name: tdqm
Version: 0.0.1
Summary: Alias for typos of tqdm
Home-page: https://github.com/tqdm/tqdm
Author:
Author-email:
License: MPLv2.0
Location: /home/pai/lib/python3.6/site-packages
Requires: tqdm
Required-by:
Note: you may need to restart the kernel to use updated packages.
実行時間
%time コマンドを使用して、関数の実行時間を記録します。
import numpy as np
%time np.random.normal(size=10)
CPU times: user 527 µs, sys: 135 µs, total: 662 µs
Wall time: 634 µs
array([ 0.15190477, -0.13989631, -1.94123265, 0.76655039, -1.70196434,
-0.21320566, -0.30997543, 1.34570534, -0.37875918, 0.30126323])
%timeit コマンドを使用して、複数回の実行を通じてコードの実行速度を評価し、実行時間の平均値と標準偏差を算出します。例を示します。
import numpy as np
%timeit np.random.normal(size=1000)
42.3 µs ± 919 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
このコマンドは、コード実行の安定性やループ処理を評価したい場合に便利です。
%pinfo
以下のコードスニペットでは、シンプルなオブジェクトを初期化し、%pinfo を使用してその詳細を取得します。
val = 100
%pinfo val
Type: int
String form: 100
Docstring:
int(x=0) -> integer
int(x, base=10) -> integer
Convert a number or string to an integer, or return 0 if no arguments
are given. If x is a number, return x.__int__(). For floating point
numbers, this truncates towards zero.
If x is not a number or if base is given,
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
