EeBlog(テクニカルブログ)

AI(人工知能)実践 第1回 他言語経験者向けPython入門1

今回から、AI(人工知能)を実践していくための記事を投稿していきます。
週1回水曜日に更新していきます。

では、まずAI(人工知能)実践 第1回として、機械学習でよく使われるPythonを取り上げます。
但し他言語経験者向けのPython入門となります。
※尚、他言語とは銘打ってますが、弊社はJavaエンジニアの多い会社ですので、Java経験者を想定する形で進めていきます。

 

1.開発環境について

Pythonでは、Visual StudioやEclipse等の他言語でデファクトスタンダードになっているような統合開発環境を使用することができます。
ですが、使いやすさや書籍・ネット上での情報量等の関係で、Jupyter Notebookもオススメします。
なお、Anacondaというパッケージを使うと、Python自体や機械学習で必要となる色々なモジュールや、
Jupyter Notebook等もまとめてインストールすることが出来るため、個別にインストールするよりも手軽に環境構築することが出来ます。

2.Pythonバージョンの互換性について

現在、Python2.xと3.x系がサポートされています。
Python2.xと3.x間では互換性がなく、一部のソースについては動作しません。
また、Python2.xについてはサポートが2020年までとされています。
よって、今から始める方は基本的にPython3.xで学習を進めることをお勧めします。

3.モジュールのインストールについて

Pythonでは、pipというパッケージ管理ツールがあります。
現状でPythonの最新版を使用する場合は、標準で付属しているはずです。
使い方は下記の通りです。

・パッケージ検索
pip search 検索文字
・パッケージインストール
pip install パッケージ名
・パッケージアンインストール
pip uninstall パッケージ名
・一括インストール
pip install -r インストールファイルが記載されたファイル名

 

インストールファイルが記載されたファイル名については、下記の書式でインストールしたいパッケージを箇条書きします。
パッケージ名==バージョン
「==」は部分については、「>=」「<=」「~=」等も使用出来ます。

詳しくは公式ページ(英語)にて
https://pip.pypa.io/en/latest/reference/pip_install/#example-requirements-file

4.コーディングスタイル

Pythonでは、基本的なコーディングスタイルとして、「PEP 8」という文章があります。
出来る限りコードが見やすいよう一般的なスタイルは遵守した方が良いので、
Pythonの公式サイト(https://docs.python.jp/3.6/tutorial/controlflow.html)に記載されている、重要な部分を抜き出した文を引用します。
なお、自動でPEP8に沿ったフォーマットになっているかをチェックしてくれるプログラム等もありますので必要に応じて使用するのも良いかと思います。

Python には、ほとんどのプロジェクトが守っているスタイルガイドとして PEP 8 があります。それは非常に読み易く目に優しいコーディングスタイルを推奨しています。全ての Python 開発者はある時点でそれを読むべきです。ここに最も重要な点を抜き出しておきます:
・インデントには空白 4 つを使い、タブは使わないこと。

・空白 4 つは (深くネストできる) 小さいインデントと (読み易い) 大きいインデントのちょうど中間に当たります。タブは混乱させるので、使わずにおくのが良いです。

・ソースコードの幅が 79 文字を越えないように行を折り返すこと。

・こうすることで小さいディスプレイを使っているユーザも読み易くなり、大きなディスプレイではソースコードファイルを並べることもできるようになります。

・関数やクラスや関数内の大きめのコードブロックの区切りに空行を使うこと。

・可能なら、コメントは行に独立で書くこと。

・docstring を使うこと。

・演算子の前後とコンマの後には空白を入れ、括弧類のすぐ内側には空白を入れないこと: a = f(1, 2) + g(3, 4)。

・クラスや関数に一貫性のある名前を付けること。慣習では CamelCase をクラス名に使い、 lower_case_with_underscores を関数名やメソッド名に使います。常に self をメソッドの第 1 引数の名前 (クラスやメソッドについては クラス初見 を見よ) として使うこと。

・あなたのコードを世界中で使ってもらうつもりなら、風変りなエンコーディングは使わないこと。どんな場合でも、Python のデフォルト UTF-8 またはプレーン ASCII が最も上手くいきます。

・同様に、ほんの少しでも他の言語を話す人がコードを読んだりメンテナンスする可能性があるのであれば、非 ASCII 文字も識別子に使うべきではありません。

長くなってきましたので、第2回へと続きます。