iPython でちょっと便利なショートカットとか
なんか色々便利そうなショートカットとかコマンド見っけてたので備忘録的にメモ。% ついてるやつは Magic Function とかいうらしい。
関数実行のショートカット
かっこは省略できるらしい。初めて知った。
「/」でさらに引数の「,」を省略。「,」で引数を文字列に変換。
# かっこ省略で実行 In [23]: sample 1, 2 -------> sample(1, 2) # さらに引数の「,」省略で実行 In [24]: /sample 1 2 -------> sample(1,2) # 引数を文字列に変換して実行 In [25]: ,sample 1 2 -------> sample("1", "2")
名前空間関連
%who, %whos, %who_ls, %reset を使う。
どの変数に何を入れたのか忘れてしまったときとか便利。めんどくなったらリセットも可能。
# とりあえず一覧 In [35]: %who l random sample # 詳細情報も表示 In [34]: %whos Variable Type Data/Info -------------------------------- l list [0, 2, 3, 4, 5, 6, 7, 8] random module <module 'random' from '/o<...>ib/python2.5/random.pyc'> sample function <function sample at 0x13c7a30> # リストとして出力 In [36]: %who_ls Out[36]: ['l', 'random', 'sample'] # 名前空間リセット In [37]: %reset Once deleted, variables cannot be recovered. Proceed (y/[n])? y In [38]: %who Interactive namespace is empty.
store すげー便利
iPython を終了しても値を保存しておいてくれる。めっちゃ長いデータを使い回すときとか使えそう。
「store 値」で保存、「store」で一覧、「>」でファイル書き込み、「>>」でファイル追記、「-r」で復元、「-d」で削除、「-z」で全削除とか。
In [3]: a = 'stored string' # データを保存 In [4]: store a Stored 'a' (str) # 保存しているデータ一覧表示 In [7]: store Stored variables and their in-db values: a -> 'stored string' b -> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [8]: a = 'uwagaki' In [9]: a Out[9]: 'uwagaki' # 上書きされた変数を復元 In [10]: store -r a In [11]: a Out[11]: 'stored string' # ファイルに書き込む In [19]: store a > a.txt Writing 'a' (str) to file 'a.txt'. In [20]: cat a.txt stored string # ファイルに追記する In [21]: store a >> a.txt Writing 'a' (str) to file 'a.txt'. In [22]: cat a.txt stored string stored string In [24]: store Stored variables and their in-db values: a -> 'stored string' b -> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] c -> "It's c!" # 保存しているデータを削除 In [25]: store -d c In [26]: store Stored variables and their in-db values: a -> 'stored string' b -> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 保存しているデータを全て削除する In [27]: store -z In [28]: store Stored variables and their in-db values:
その他
%pfile, %pinfo, %color_info, %colors, %lsmagic, %quickref。情報とか色とかその辺もろもろ。
# オブジェクトの情報が見れる(「?」でも一緒。?range とか range? とか) In [45]: pinfo range Type: builtin_function_or_method Base Class: <type 'builtin_function_or_method'> String Form: <built-in function range> Namespace: Python builtin Docstring: range([start,] stop[, step]) -> list of integers Return a list containing an arithmetic progression of integers. range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0. When step is given, it specifies the increment (or decrement). For example, range(4) returns [0, 1, 2, 3]. The end point is omitted! These are exactly the valid indices for a list of 4 elements. # シンタックスハイライトされたファイルの中身を見れる(less みたいな感じ) In [46]: pfile .zshrc # 色のありなしをトグル In [49]: %color_info Object introspection functions have now coloring: OFF In [50]: %color_info Object introspection functions have now coloring: ON # カラースキームを変更する(デフォルトは Linux) In [52]: %colors LightBG In [53]: %colors Linux # マジックファンクション一覧 In [55]: lsmagic Available magic functions: %Exit %Pprint %Quit %alias %autocall %autoindent %automagic %bg %bookmark %cd %clear %color_info %colors %cpaste %debug %dhist %dirs %doctest_mode %ed %edit %env %exit %hist %history %logoff %logon %logstart %logstate %logstop %lsmagic %macro %magic %p %page %pdb %pdef %pdoc %pfile %pinfo %popd %profile %prun %psearch %psource %pushd %pwd %pycat %quickref %quit %r %rehash %rehashx %rep %reset %run %runlog %save %sc %store %sx %system_verbose %time %timeit %unalias %upgrade %who %who_ls %whos %xmode Automagic is ON, % prefix NOT needed for magic functions. # チートシート的なものが見れる In [56]: %quickref
実行時間の計測
%timeit を使う。%timeit -n100 sample(a, b) とか。
IPython の timeit で実行時間計測 - 人生いきあたりばったりで生きてます@はてな
実行中にモジュールやらの再読み込み
%run, %reload, %dreload を使う。だいたい %run で OK。
iPython を起動中にモジュールを再読み込みさせたい - 人生いきあたりばったりで生きてます@はてな
他にもまだまだいっぱいあるけど、今んとこ便利だなーと思ってるのはこんくらい。
とりあえず store 便利!「?」便利!pfile も(微妙に文字化けするけど)便利!
そして地味に関数実行のショートカット便利!
ほんと、見てみるもんですねー。ドキュメント。
404 Not Found
ってこんなんやっとる場合じゃねぇや。