2014/07/01

ライブラリ:IPython その1

「 IPython 」という Python のライブラリについてご紹介します。


IPython とは、一言でいうと「 Python の対話型モードの強化版」です。 Python 環境をインストールするとデフォルトで付いてくる対話型 Python にさまざまな便利機能を追加したようなものになります。

Ruby をご存知の方であれば「 Python 版の pry 」と表現するとわかりやすいかもしれません。

基本的には、デフォルトの対話型モードと同じ使い方をします。

IPython には、大きく分けて

  • 純粋な CUI モード
  • ブラウザを使ったモード

の 2 つの使い方があります。

今回はこのうちの前者「純粋な CUI モード」に絞って見ていきたいと思います。詳しい解説はすでに多くの方がされているので、ここでは基本的な部分をざっとご紹介します。


純粋な CUI モード

この CUI モードは、ターミナル/コマンドライン上で利用するものです。

実際に使いはじめる前に、まずはインストールをしましょう。


インストール

インストール方法として、さまざまな方法があります。いちばんカンタンなのはパッケージ管理ツールで入れる方法です。

私の環境では例のごとく pip でインストールしました。
$ pip install ipython 
実際に IPython を走らせてみるとエラーが出て立ち上がらなかったので「エラーが出るごとに、欠けているものを都度都度インストールする」ということを繰り返しました。

pip でパッとやってみてダメなら、ここでハマってしまうと苦しいので、素直に何らかのパッケージ管理ツールを使う方法がおすすめです。

インストールについてはこのあたりが詳しいです。
Installing IPython — IPython
Quickstart — IPython An Afternoon Hack documentation


立ち上げる

インストールが無事終われば、 IPython を立ち上げます。
$ ipython

IPython が立ち上がると、次のような画面になります。


ちなみに、Python3 の場合はコマンド名が ipython3 に変わっています。


便利機能その1 補完機能

IPython の便利な機能のひとつが、「補完機能」です。変数名や何かを途中まで打ってタブキーを押すと、該当するものが自動で補完されます。


候補がひとつしかない場合はそれが入力されますし、複数ある場合は一覧表示されます。

変数名の他に import でファイル名やクラス名、メソッド名を指定したいときなんかにも、バリバリ補完してくれます。

この機能だけでも、IPythonを使う価値はあるかと思います。


便利機能その2 コマンド実行機能

もうひとつ便利な機能に、「コマンド実行機能」です。「 ! 」に続けてコマンドを入力すると、それがコマンドとしてそのまま実行できるというものです。


vimでコマンドを呼び出すのと同じような感じでしょうか。


便利機能その3 マジックファンクション機能

他には「マジックファンクション」という機能もあります。これは「 % 」始まりの文字列を入力すると各種擬似関数が使えるというものです。


たとえば、「 %run 」というコマンドは Python スクリプトを実行する関数、「 %time 」というコマンドはその後に与えられたコードの実行時間を計測する関数です。「 %history 」は直近に入力したコードを返してくれる関数で、「 %paste 」はクリップボードに保存された文字列を Python コードとして実行してくれる関数です。

他にもたくさんのマジックファンクションが用意されています。


便利機能その4 オブジェクト調査機能

オブジェクト名のあとに「 ? 」をつけて「 オブジェクト名? 」とすると、そのオブジェクトの概要を見ることができます。型や中身、 Docstring などをざっと確認することができます。



以上です。

ここにあげた機能はごく一部で、他にもさまざまな機能があります。ひとまず IPython がインストールできたら、 IPython 起動後「 %quickref 」と打てば、かんたんなリファレンスを見ることもできます。さらに詳しく知りたい場合には以下、公式サイトや参考サイトをご覧ください。

今回は冒頭にあげた IPython のふたつの使い方
  • 純粋なCUIモード
  • ブラウザを使ったモード
のうち、前者の「 CUI モード」についてのみご説明しました。ブラウザを使ったモードについてはまた記事を改めます。

参考
公式サイト
Announcements — IPython
Videos and Screencasts — IPython

その他サイト
Ipython-quick-ref-sheets
ITエンジニアのためのデータサイエンティスト養成講座(3):データを取り込む・格納するための方法を理解する (2/4) - @IT
ueBLOG | IPythonを使おう1

YouTube Ipython 検索結果
ipython - YouTube

0 件のコメント: