LogoMark.png

Python のバックアップ(No.5)


Python

https://www.python.org/

Pythonはさまざまな分野のアプリケーションで使われているインタープリタ型のプログラミング言語です。クリーンで読みやすい文法、手続き型のコードによる自然な表現、直感的なオブジェクト指向、事実上すべてのタスクをこなせる広範な標準ライブラリとサードパーティのモジュール、アプリケーションに組み込んでスクリプトインタフェースとして利用することが可能・・など様々な利点があります。

Google社においても C++、 java と並ぶ3大言語のひとつとして位置づけられていて、Googleが公開している人工知能のAPI TensorFlow も Python のライブラリのひとつとして位置付けられています。

開発環境を含めてオープンソースです。無償でダウンロード>インストールして利用することができます。


Python の現在

CONTENTS




はじめに

このページでは Python プログラミングの導入について説明しています。
データサイエンスの学習等で初めて Python を使う方には、このページに記載の環境を準備するよりも、GoogleColaboratory の利用をお勧めします。> GoogleColaboratory

各種配布元

入門サイト

開発環境の準備

様々な開発環境

以下のような開発環境があります。ローカルPC上で複数の開発環境を混在させるとシステムプログラムの衝突が生じるので、いずれかを選択することをお勧めします。

以下、順に解説します。




ローカルPC上での開発

Python のインストール

Pythonには、2系と3系があって、これらは互換性がありません。これから学習する方は3系の利用をおすすめします

Macの場合は Python2系(OS X 10.7 〜 macOS 11)あるいは Python3系(それ以降)のいずれかが、すでにインストール済みです。Terminalで以下のようにタイプしてみて下さい。

python --version

Python 3.XX.XX のかたちで表示された場合は、すでにインストール済みです。

Python 2.7.XX と表示された場合は、さらに以下のようにタイプして下さい。

python3 --version


VS Code を利用する場合

以下の公式サイトから、自身の環境に合うものをインストールして下さい。
https://code.visualstudio.com/Download
Macの場合は、解凍したもの(アイコン)をアプリケーションフォルダへ移動して下さい。

VS Code(Visual Studio Code)は、様々なプログラミング言語に機能を対応した機能拡張が可能な TextEditor で、Python 拡張機能を追加することで、快適な開発環境となります。

VSCode.jpg



Python IDLE を利用する場合

公式サイトで配布されている標準的な開発環境(IDLE)です。Pythonのインストール時に同時に入ります。アプリケーションメニューに Pythonフォルダ が追加され、IDLEのダブルクリックで開発環境が起動します。配布元は以下。


Jupyter Notebook / Jupyter Lab を利用する場合

Jupyter Notebook / Jupyter Lab は、IPython というカーネルと、Notebook または Lab という Web UI をセットにした開発環境で、ブラウザ上でデータ処理とコメントなどを順次ノート形式で記録できるようにしたものです。ブラウザを動作基盤とした Webアプリケーションなので、環境に依存しない開発が可能です。

IPython(アイパイソン)は Python を対話的に実行するためのシェルで、Python の機能の一部(対話処理)に、対話を強化する各種機能を追加したもの・・というイメージです。統計処理(データ読む>分析する>結果をグラフで表示する)など、作業を逐次的に進めていくプログラムの開発に向いています。

注).html拡張子 に対するアプリケーションの割付が「ブラウザ」になっていることが必要です。.html のダブルクリックでエディタが開くような割付設定を行なっていると、Notebookがうまく起動できないので注意して下さい。

Anaconda を利用する場合

Anaconda はデータサイエンス向けの統合開発環境で、科学技術計算などを中心とした数多くのモジュールやツールが独自の形式でパッケージされています。ソースコードエディターはもちろん、Python 2系、3系を仮想環境を分けて利用できるなど、様々な活用が可能です(ディスク領域は1GB以上使います)。

Mac の Terminal

Pythonがインストールされていれば、Terminal で体験することができます。開発に必要なのは、プログラムを書くためのテキストエディタのみです。あとは Terminal からのコマンド入力で動きます。以下、手順の例です。

以下のページに、もう少し具体的な説明を記載しています。
Python/Sample?




クラウド上での開発

以下、Google Colaboratory を利用する場合は、自身のPCに何かをインストールする必要はありません。Googleアカウントがあれば、ブラウザから誰でも無料で利用できます。

Google Colaboratory

GoogleColaboratory とは、Googleの仮想マシン上で動くIPythonの実行環境で、Jupyter Notebook を利用します。
https://colab.research.google.com

記事を独立させました。> GoogleColaboratory





Python ツール・ライブラリ

ツール・ライブラリ等のインストール

Terminal からのインストールには、pip3(2系は pip)を使います。以下のように、コマンド入力はいたって簡単です。

$ pip3 install pygame ← ゲーム開発用のライブラリ
$ pip3 install pyopengl ← 3DCG用のグラフィックライブラリ
$ pip3 install jupyter ← jupyter notebook
$ pip3 install orange3 ← データマイニングツール Orange3


ライブラリ紹介


インストール済みライブラリの確認

以下のコマンドで確認できます

$ pip3 list
Package            Version
------------------ -----------
ipykernel          5.3.0
ipython            7.16.1
jupyter            1.0.0
jupyter-client     6.1.5
jupyter-console    6.1.0
jupyter-core       4.6.3
matplotlib         3.2.2
notebook           6.0.3
numpy              1.19.0
pandas             1.0.5
pip                20.1.1
 :


ライブラリ・パッケージ・モジュール

APPENDIX

Python 禅

Python 禅(The Zen of Python)は、Pythonプログラマが持つべき心構えを簡潔にまとめたものです。"Zen"は日本語の「禅」。Pythonインタプリタ環境で import コマンドを以下のようにタイプするとその文章を読むことができます。

$ python3
Python 3.8.2・・・
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!