Pythonを効率的に学ぶにはどうすれば良い?(後編)
前の記事のあらすじ
Pythonを効率的に学ぶには、ということで記事を書きました。 前の記事では、Numpyとpandasについて書いたわけですが、後編の今回は、Numpyやpandasとの間でファイルのやり取りを行うファイル管理とNumpyたpandasを使って処理した結果を表現するためのmatplotlibについて使い方を書いていきたいと思います。
mmatplotlib使用例
Pythonにおけるファイル管理とは?
ファイル管理とは書きましたが、要はファイルの読み込みと書き込みのお話です。 Pythonでファイルを読み書きするには3つのステップが必要です。
1)open()関数を呼び出してFileオブジェクトを取得する
2)Fileオブジェクトのread()やwrite()メソッドを呼び出して読み書きする
3)Fileオブジェクトのclose()オブジェクトを呼び出してファイルを閉じる
ということで幾つかのケースについての説明を添付します。
まずは、オーソドックスな読み書きに関して。
次には、読み込みモジュールの違いについて。
次に、形式別(テキスト、json、csv)の読み書きについて。
JSONとは、JavaScript Object Notationの略でXMLなどと同様のデータフォーマットの一種です。 JSONの特徴は、JavaScriptのObject表記構文のサブセットとなっており、XMLなどと比べると簡潔に構造化されたデータを記述できるということがあります。 このため、記述が容易で人間が理解しやすいデータフォーマットとなっています。
僕がPythonでプログラムを作る際に一番よく使ったのがCSVファイルです。 顧客とのデータのやり取りも基本的にはCSVファイルで行っていました。
最後にエクセルやワードの読み書き。
CSVファイルの使用頻度が高いといってもエクセルやワードは無視できない存在です。 その意味でもマスターすべき内容です。
一応、これだけのことをマスターできればPythonでプログラムを書くときにファイル操作で悩むことはないと思います。 簡単なようでも知っていると知らないでは大違いで、僕は最初のころつまづいてしまいました。 まあ何でも経験と思ってやっていましたが、できれば効率よくやれるのが良いですよね。
matplotlibとは?
matplotlibは、Pythonにおけるグラフ描画ライブラリです。 Pythonで処理した結果をプロットしたり、画像として可視化したりすることは、データ分析において非常に重要な作業となります。 この作業を効果的に行うためのライブラリがmatplotlibであり、この中には様々な種類のグラフを描画するための機能が備わっています。 描画できるのは主に2次元のプロットとなりますが、3次元プロットも少しではありますが機能の追加が行われています。 当然、描画したグラフを各種形式の画像として保存することも可能です。
matplotlibの基礎を理解するにはこちらの記事が良いと思います。
グラフの構成要素、プロットの仕方、色や線種の指定方法等が判りやすく説明されています。
次はこちら。 より具体的というか、具体的な利用シーンを想定した形で説明が行われており、よりグラフを見やすくできるようになると思います。
こちらの記事は、上の記事を補完するもので、同じくグラフを見やすくするためのものです。
最後はこちら。 グラフの描画の領域は結構奥深いものがあります。 そういうことで、matplotlibに関する有益な記事群が纏められているのがこちらです。
以上の内容をマスターできれば、ひとまずは仕事に使えるグラフを描くことができると思います。 それでは、matplotlibで作成したグラフの事例をお見せしましょう。
これらのグラフは、Qiitaより引用しています。
1)折れ線グラフ
2)棒グラフ
4)ヒストグラム
累積ヒストグラム
加工したグラフ
5)散布図
6)円グラフ
7)箱ひげ図
それでは3次元のグラフの事例を幾つか紹介します。
さて如何だったでしょうか。
2回の記事を通じてPythonを効率的に学んでいくためのステップを示してきました。 あとは具体的に課題に対してPtyhonを適用していくのみです。 すぐに効果はでないかもしれませんが繰り返し繰り返しチャレンジしていけば何とかなります。 僕はアメリカにいる間に幾つかのアプリをPythonを使って作りました。
・有寿命部品の劣化状況診断(劣化の程度が判り交換時期を推奨)
・装置間の機体差(性能の差)がなにに起因しているかの解析
・装置の中で特有の動作(状態)の発生を見つけメンテ時に部品のメンテを推奨
・稼働に伴って装置状態が変化していくことを把握しメンテ時に部品のメンテを推奨
あなたにもできます。
レッツ、チャレンジ!
(参考図書)