<   2018年 04月 ( 2 )   > この月の画像一覧

ipython --pylab

ipython に --pylab コマンドラインオプションをつけて起動してみた。こうすると、次の例のように円周率の pi や linspace 関数や plot 関数や畳み込み関数の convolve など数学関連の関数がモジュール指定なしに動作しているようだ。数学の教科書を読むときに便利かもしれない。

C:\Users\******>ipython --pylab
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]

Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.
Using matplotlib backend: TkAgg

In [1]: x = linspace(0,6*pi)

In [2]: y = sin(x)

In [3]: z = sin(2*x)

In [4]: a = exp(-0.25*x)

In [5]: plot(x,y)
Out[5]: [<matplotlib.lines.Line2D at 0x2498e0042b0>]

In [6]: plot(x,z)
Out[6]: [<matplotlib.lines.Line2D at 0x2498e071668>]

In [7]: plot(x,a)
Out[7]: [<matplotlib.lines.Line2D at 0x2498e06f780>]

In [8]: plot(x,convolve(a,y)[0:50])
Out[8]: [<matplotlib.lines.Line2D at 0x2498e07ffd0>]

In [9]: plot(x,convolve(a,z)[0:50])
Out[9]: [<matplotlib.lines.Line2D at 0x2498e085a20>]

In [10]: close()

インパルス応答関数が指数関数のCR回路に正弦波を入力すると、高周波のほうが振幅が小さくなることが分かる。

上の実行例でグラフが記述できるのだが、ipython の使い方のメモということで画像は添付していません。使い方が分かるようになるためには、こういう単純な例を繰り返し実行させて手になじませる必要があるようだ。


[PR]
by tnomura9 | 2018-04-18 12:57 | Python | Comments(0)

Python によるデータ分析入門

『Pythonによるデータ分析入門』Wes Machinney 著を一通り通読した。この本は一体どういう本なのだろうか。それは、巻末の著者紹介を読めばわかる。以下に引用する。

著者紹介
Wes McKinney (ウェス・マッキニー)
ニューヨークを拠点に活動するデータハッカー兼起業家。MITで数学を専攻し、2007年に卒業した後は、コネチカット州グリニッジのAQR Capital Management でクオンツ運用に従事。使いにくいデータ分析ツールに辟易し、2008年に Python を覚えて、のちに pandas と呼ばれることになるプロジェクトを始める。現在 Python の科学コミュニティーのアクティブメンバーであり、データ分析、金融、統計計算アプリケーション部門での Python 推進者でもある。

つまり、この本は金融関係のデータマイニングに Python を使う人のための本だ。それ以外には、数値データを統計処理する研究者にも有用だろう。管理人は残念ながらそのどれにも該当しない。

この本は pandas を使いこなせるようになるための教科書だ。ただ、pandas というライブラリの使い方を学ぶだけでは使えるようにはならないようだ。pandas を使いこなせるようになるためには IPython、Numpy 、matplotlib などのライブラリの知識も必要だ。これらのライブラリが有機的に pandas と組み合わされることによって。数値データの統計的な分析を効率的に行うことができる。

この本では、Ipython、Numpy、pandas、matplotlib という4つの Python のモジュールが有機的に解説されていて、pandas を用いたデータ分析が実践的に行えるようなるように構成されている。

Python で金融データの処理や、統計計算をしてみたいと思う人にはお勧めの一冊ではないだろうか。また、AI を使ってみたいと思って Python を学ぶ人にも必読の書だろう。

しかし、単に Python を使ってみるという目的のためにもこの本は示唆的だ。まず、IPython は、Python を対話的に使うだけでなく、シェルとしても使うことができるのが分かる。IPython 上でデータを扱うためのファイル操作を含めてすべてを行えるのだ。Numby は ndarray という多次元の数値データ型を提供し、複数の数値データを全くループを書くことなく自由に加工することが可能になっている。また、matplotlib を使うことによってこれらのデータを簡単に図表化することによって数値データの可視化を行える。pandas は Excel に似た表計算のデータを Python で簡単に処理するためのモジュールだ。pandas の最大の利点は欠落データのある数値データを簡単に取り扱えることだろう。実世界のデータを扱うときに欠落データの処理は必発だ。

対話的な環境で、複雑なデータをオブジェクトにくるんで、ループなどの制御構造なしにリアルタイムに処理するというスキーマは Python 以外のプログラム言語を使う際にも共通する重要な戦略になるような気がする。

[PR]
by tnomura9 | 2018-04-11 22:11 | Python | Comments(0)