SlideShare a Scribd company logo
IPythonをマスターしよう
Python東海 Vol.5
株式会社モノスペース
船井 裕
hfunai@gmail.com
IPython?
Pythonの拡張インタラクティブシェル
タブ補完
オブジェクトのイントロスペクション
システムシェルへのアクセス
特殊コマンド などなど
インストール
$ easy_install IPython
$ ipython
Windows or Mac 環境は readline を別途インストー
ルしないとだめかも
基本的な使い方
Basic Usage
タブ補完
例えば、sys モジュールのメソッド、属性を表示したい
In [1]: import s[TAB] # <- sまでタイプしてTAB モジュール補完候補表示
set setattr slice sorted staticmethod str sum
super sys
In [2]: import sys
In [3]: sys.[TAB] # <- sys.までタイプしてTAB補完候補表示
In [4]: sys.__class__
.sys.__class__ sys.__delattr__ ...
イントロスペクション
例えば、re モジュールについて調べたい
In [1]: import re
In [2]: re? # オブジェクトに関する情報を表示(省略あり)
In [3]: re?? # オブジェクトに関する情報を表示(省略なし)
In [4]: %pdoc re # docstring表示
In [5]: %pdef re.search # re.searchの宣言部表示
In [6]: %psource re.search #re.search メソッドのソースコード表示
In [7]: %pfile re.search #re.search が定義されているファイルのソースコードを表示
マジックコマンド
IPythonの独自のコマンド
%[TAB] #マジックコマンドの一覧
%alias %autocall %autoindent ...
※automagicがON(デフォルトでON)だと、%を付けなくても実行できる。
In [1]: alias #これで実行できる
ところでマジックコマンドに定義されてないのに、ls とかが動くのはなぜ?
%alias #シェルコマンドがマップされている
[('cat', 'cat'), ('clear', 'clear'), ('less', 'less'), ('mkdir', 'mkdir'), ...]
%alias d date # エイリアスの追加。 dと打つとdateが実行される
シェルアクセス
IPythonを終了せずにシェルコマンドを実行したい
In [1]: !cal # cal コマンドが直接シェルに渡される
In [2]: d = !date # date コマンドの結果を d に代入
In [3]: d # <class 'IPython.genutils.SList'> 特殊なリストになる
In [4]: !echo $$PATH # $$で環境変数へのアクセス
キャッシュ
アウトプットキャッシュ
Out という辞書に格納
_1 == Out[1] == _oh[1]
_, __, ___ ※ 最新3つの履歴
インプットキャッシュ
In という辞書に格納
_i1 == In[1]
_i, _ii, _iii ※ 最新3つの履歴
In [1]: print datetime.now()
datetime.nowをもう一回実行したい
In [2]: _i1 # これだと文字列が入ってるだけなので
Out[2]: u'print datetime.now()n'
In [3]: exec _i1 #ひとつ前のを実行なら、 exec _i だけでもオッケー。もしくは、%r でも可。
履歴
In [1]: _dh # cd したディレクトリが入った辞書(終了後も保存)
In [2]: _oh # Out の履歴が入った辞書
In [3]: %hist # 実行コマンド履歴(In の履歴)
In [4]: %rep # 直前のOutを次のプロンプトに表示
In [0]: spam = python
In [1]: spam
Out [1]: python
In [2]: %rep
In [3]: python
%rep に引数を渡すことも出来る。 %rep 1 とか %rep 1-3 5 とか %rep datetime とかも可
しかし、なぜか自分の Leopard python2.5.1 ipython0.91で動かない!Linuxでは動いた。
%rep datetime と文字列を指定した
場合は、履歴をたどって最初にその
文字列が見つかったOutを使用する
ブックマーク
よく行くディレクトリをブックマークしておきたい
In [1]: %bookmark home #カレントディレクトリをブックマーク
In [2]: %bookmark -l #ブックマーク一覧
Current bookmarks:
home -> /Users/hfunai
In [3]: cd -b home # home=/Users/hfunai へ移動
In [4]: %bookmark -d home # ブックマークからhomeを削除
ブックマークは、IPythonを終了しても保存される
応用的な使い方
Advanced Usage
ディレクトリスタック
In [1]: %pushd # カレントディレクトリをスタックに入れる
Out[0]: [' ']
In [2]: %dirs # ディレクトリスタックを表示
Out[1]: [' ']
In [3]: %cd /SourceCodes
In [4]: %pushd # カレントディレクトリをスタックに入れる
Out[3]: [' /SourceCodes', ' ']
In [5]: %cd /usr/lib/python2.5/site-packages/
In [6]: %popd # ディレクトリスタックの[0]へ移動
In [7]: %pwd # '/Users/hfunai/SourceCodes' を表示
ストレージ
IPython終了後も値を保存しておいて、また使いたい
In [1]: spam = Python Tokai
In [2]: %store spam
一旦、IPythonを終了
In [1]: spam
Out[1]: 'python tokai' #spamを上書き
In [2]: spam = Python Nagoya
In [3]: store -r spam # Python Tokai が復活(もう一度保存するまで前の値が残ってる)
In [4]: store -d spam # Python Tokai がをストレージから削除
In [5]: store # 引数なしだと一覧表示
マクロ
%macro [マクロ名] 1-3 5
In [1]: import os
In [2]: import sys
ln [3]: import re
In [4]: from datetime import datetiem # spellミス!
In [5]: from datetime import datetime
%macro mymacro 1-3 5 # 4は飛ばす
In [6]: mymacro #マクロを実行
マクロはストレージに
保存しておくと便利
ログ
ログをファイルに保存する
%logstart
In [1]: import os
In [2]: import sys
In [3]: import re
%logstop # %logoffで一時的に停止、%logonで再開
IPythonを抜けて、シェルで実行
$ ipython -logplay ipython_log.py
ログファイルの内容を実行してから、IPythonシェルが開始する。
ソースコード編集
In [1]: %cpaste #クリップボードにあるソースをペーストしたいとき
In [2]: %edit #エディタを開いて編集(設定ファイルでエディタを指定)
In [3]: %edit 1-10 #1-10のInをエディタで
In [4]: %save 1-10 #1-10のInをファイルへ保存
簡易バージョン管理
%editごとに一時ファイルが作成されるのを利用
In [5]: %edit _i2 # In [2] の内容を編集
In [6]: %edit _i3 # In [3] の内容を編集
クラスとか関数を定義したいとき
は、%editで書くと、便利。
export EDITOR=vim
しておきましょう。
簡易バージョン管理は別に使わない
よなあ。
doctestへの対応
起動オプションで対応
$ ipython -cl # クラシックモード。プロンプトを >>> にする。
※ただし、インプットキャッシュとか一部の機能が使えなくなる。
起動中に一時的に変更
%doctest_mode # プロンプトが >>> になる
%hist -tn #ヒストリを行番号表示なしで
%hist -tnの内容を%doctest_modeにしてからコピペ
%doctest_mode を再実行すると通常モードに戻る
その他のコマンド
%rehash # $PATHを見てコマンドすべてを%aliasに入れる
%rehashx # rehashと一緒だけど、exectableかチェックする
%who # 名前空間を表示 %whos %who_ls とか
%reset # 名前空間のリセット 変数とか全部消える
%clear # Input,Outputなどの履歴を消去
%run # IPython上でPythonスクリプトファイルを実行する
%timeit # ベンチマーク的なもの
%pycat # Pythonファイルをソースコードハイライトして表示
%bg # 別スレッドをたててバックグラウンドでスクリプトを実行
%quickref # IPythonチートシート
設定ファイル
起動後の挙動を変更する
/.ipython/ipy_user_conf.py
他にもrcファイルがあるけど、 このファイルは起動時に必ず読み込まれるので、とりあえずはこちら
を編集。ただ、このファイルとrcファイルとは記述が異なる。こっちはpythonスクリプト。
プロファイル
プロファイルは、rcファイルを編集。
/.ipython/の中にipythonrc-[プロファイル名]
というファイルを作成して、起動オプションでプロファイルを指定する。
$ ipython -p [プロファイル名]
常に使用したい設定はipy_user_conf.pyに書いて、場合によって変えたい設定はrcでプロファイルを
指定してって感じの使い分けをしたらいいのかな。
参考文献
本家のドキュメント
http://ipython.scipy.org/doc/rel-0.9.1/html/

More Related Content

PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PDF
python-twitterを用いたTwitterデータ収集
PDF
「Python言語」はじめの一歩 / First step of Python
PDF
PythonによるWebスクレイピング入門
PDF
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
PDF
Python入門
PDF
Python 機械学習プログラミング データ分析ライブラリー解説編
PDF
第1回python勉強会
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
python-twitterを用いたTwitterデータ収集
「Python言語」はじめの一歩 / First step of Python
PythonによるWebスクレイピング入門
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Python入門
Python 機械学習プログラミング データ分析ライブラリー解説編
第1回python勉強会

What's hot (20)

PPTX
Pythonの環境導入 2014年春季版
PDF
なぜ科学計算にはPythonか?
PDF
Python3 プログラミング勉強会
PDF
捗るリコメンドシステムの裏事情(ハッカドール)
PPTX
2017/12/21 虎の穴 Python勉強会
PDF
Pythonを取り巻く開発環境 #pyconjp
PPTX
勉強会 Cvml python基礎
PDF
pythonでオフィス快適化計画
PPTX
第3回メドレー読書会後半
PDF
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
PDF
Scikit learnで学ぶ機械学習入門
POTX
素振りのススメ at Python入門者の集い
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PDF
Py datameetup1
PPTX
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
PPTX
プログラミング入門 Python超入門編
PDF
PyAutoGUI等Pythonライブラリによる自動化支援
PDF
Python × Herokuで作る 雑談slack bot
PDF
Python パッケージの影響を歴史から理解してみよう!
PPTX
Apilecture for 2014/02/22 at shannonlab
Pythonの環境導入 2014年春季版
なぜ科学計算にはPythonか?
Python3 プログラミング勉強会
捗るリコメンドシステムの裏事情(ハッカドール)
2017/12/21 虎の穴 Python勉強会
Pythonを取り巻く開発環境 #pyconjp
勉強会 Cvml python基礎
pythonでオフィス快適化計画
第3回メドレー読書会後半
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
Scikit learnで学ぶ機械学習入門
素振りのススメ at Python入門者の集い
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Py datameetup1
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
プログラミング入門 Python超入門編
PyAutoGUI等Pythonライブラリによる自動化支援
Python × Herokuで作る 雑談slack bot
Python パッケージの影響を歴史から理解してみよう!
Apilecture for 2014/02/22 at shannonlab
Ad

Viewers also liked (20)

PDF
Pythonで簡単ネットワーク分析
PDF
10分でわかるPythonの開発環境
PDF
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
PDF
RとPythonによるデータ解析入門
PDF
scikit-learnを用いた機械学習チュートリアル
PDF
Gensim
PDF
Python入門 : 4日間コース社内トレーニング
PDF
企業における統計学入門
PDF
ガチャとは心の所作
PDF
神の言語による自然言語処理
PDF
全文検索入門
PDF
SPSSで簡単テキストマイニング
PDF
チームラボ忘年会
PDF
第1回茶ッカソン in Tokyo プレゼンシート「FULLER」
PDF
さくさくテキストマイニング入門セッション
PDF
テキストマイニングのイメージと実際
PDF
Credential social media_live_v1_3
PPTX
Python による 「スクレイピング & 自然言語処理」入門
PPTX
第1回茶ッカソン in Tokyo プレゼンシート「チームNifty」
PDF
Credential twittorebiew v1.3
Pythonで簡単ネットワーク分析
10分でわかるPythonの開発環境
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
RとPythonによるデータ解析入門
scikit-learnを用いた機械学習チュートリアル
Gensim
Python入門 : 4日間コース社内トレーニング
企業における統計学入門
ガチャとは心の所作
神の言語による自然言語処理
全文検索入門
SPSSで簡単テキストマイニング
チームラボ忘年会
第1回茶ッカソン in Tokyo プレゼンシート「FULLER」
さくさくテキストマイニング入門セッション
テキストマイニングのイメージと実際
Credential social media_live_v1_3
Python による 「スクレイピング & 自然言語処理」入門
第1回茶ッカソン in Tokyo プレゼンシート「チームNifty」
Credential twittorebiew v1.3
Ad

Similar to Python東海Vol.5 IPythonをマスターしよう (20)

PDF
Chapter3
KEY
ひのきのぼうだけで全クリ目指す
PDF
IPython notebookを使おう
PDF
はじめてのPython
PDF
おまえらこのライブラリ使ってないの? m9 (2013-07)
PDF
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
PDF
DATUM STUDIO PyCon2016 Turorial
PPTX
Ipythonを使ってみよう
PDF
LLdeade Python Language Update
PDF
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
PDF
Introduction Pycon2010
PDF
Pyconjp2014_implementations
PPTX
210728 mpy
PDF
エキ Py 読書会02 2章前半
PPTX
ロボットシステム学2015年第9回
PDF
Python Kyoto study
PDF
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
PPT
Python languageupdate (2004)
PDF
Subprocess no susume
PDF
Git pyfes201207-presen
Chapter3
ひのきのぼうだけで全クリ目指す
IPython notebookを使おう
はじめてのPython
おまえらこのライブラリ使ってないの? m9 (2013-07)
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
DATUM STUDIO PyCon2016 Turorial
Ipythonを使ってみよう
LLdeade Python Language Update
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
Introduction Pycon2010
Pyconjp2014_implementations
210728 mpy
エキ Py 読書会02 2章前半
ロボットシステム学2015年第9回
Python Kyoto study
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Python languageupdate (2004)
Subprocess no susume
Git pyfes201207-presen

Python東海Vol.5 IPythonをマスターしよう