LogoMark.png

Python の変更点


#author("2020-07-08T13:59:50+09:00","default:inoue.ko","inoue.ko")
#author("2020-07-09T14:29:11+09:00;2020-07-08T13:59:50+09:00","default:inoue.ko","inoue.ko")
*Python
~

Pythonはさまざまな分野のアプリケーションで使われているインタープリタ型のプログラミング言語です。クリーンで読みやすい文法、手続き型のコードによる自然な表現、直感的なオブジェクト指向、事実上すべてのタスクをこなせる広範な標準ライブラリとサードパーティのモジュール、アプリケーションに組み込んでスクリプトインタフェースとして利用することが可能・・など様々な利点があります。
 Google社においても C++、 java と並ぶ3大言語のひとつとして位置づけられていて、Googleが公開している人工知能のAPI [[TensorFlow>Google:TensorFlow]] も Python のライブラリのひとつとして位置付けられています。

開発環境を含めて[[オープンソース>OpenSource]]です。無償でダウンロード>インストールして利用することができます。
-[[Python/Sample]]
-[[PYPL|PopularitY of Programming Language index>http://pypl.github.io/PYPL.html]] &small(プログラミング言語の動向);
~

***Python の現在
-言語としてのランキング情報は以下
https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/
JavaScript, Java等とならんで、最上位にあります。

-以下のようなサイト(Webアプリ)が Python で構築されています。
 Youtube / Instagram / Pinterest / Dropbox
~
~

**はじめに

***各種配布元
-''Python'' https://www.python.org/
-Python Japan https://www.python.jp/

-関連ツール
--Anaconda https://www.anaconda.com/
--Jupyter Notebook http://jupyter.org/
--Google Corabolatery https://colab.research.google.com/
~

***公式サイト上でPythonを試す
[[公式サイト>https://www.python.org/]] の画面上で黄色のボタンをクリックすると(左下図)、仮想コンソールが起動します。右下図のように、その動作を試すことができます。
&image(pythonSC01.jpg,,35%); &image(pythonSC02.jpg,,50%);
~

***入門サイト
-[[Pytohnチュートリアル>https://docs.python.jp/3/tutorial/index.html]]
-[[PythonWeb>https://www.pythonweb.jp/]]
-[[ドットインストール Python3>https://dotinstall.com/lessons/basic_python_v3]]
-[[Pythonでゲーム制作入門>http://gamepro.blog.jp/python/introduction]]
~
~

**開発環境の準備

***前提の確認
Pythonには、2系と3系があって、これらは互換性がありません。

-Python2系
Macの場合はすでにインストール済みです。
[[ターミナル>Terminal]]から、いきなり試すことができます。

-''Python3系''
これから学習する方は、3系のインストールをおすすめします。
--https://www.python.org/downloads/ 基本 IDE含む
--https://www.anaconda.com/ データサイエンス関連ライブラリ統合
~

***様々な開発環境
以下のような開発環境があります。ローカルPC上で複数の開発環境を混在させるとシステムプログラムの衝突が生じるので、いずれかを選択することをお勧めします(Google Colaboratory はクラウド環境なので、PCのローカル環境とは無関係に採用できます)。
-Mac の Terminal(Windows のコンソール)から利用
-Python IDLE の利用
-Anaconda  統合開発環境の利用

-IPython(対話型 Python)
--Jupyter Notebook / Jupyter Lab
--Google Colaboratory

以下、順に解説します。

~


**Python の環境

***Mac の Terminal
Macには標準で Python 2.7(Catalina以降は Python3)がインストールされているので、[[Terminal]] を起動すれば、すぐに体験することができます。開発に必要なのは、プログラムを書くための[[テキストエディタ>TextEditor]]のみです。あとは Terminal からコマンドを打てば動きます。以下、手順の例です。

-1) テキストエディタで Python のプログラムを書く
-2) sample.py として保存(場所は Terminal のカレントディレクトリ)
-3) Terminal から、以下のようにコマンド入力するとプログラムが動きます。
 $ python sample.py
 $ python3 sample.py(Python3 の場合)

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

~

***Python IDLE
[[公式サイト>https://www.python.org/]]で配布されている標準的な開発環境(IDLE)です。ダウンロード・インストールすると(Win / Macとも)アプリケーションメニューに Pythonフォルダ が追加され、''IDLE''のダブルクリックで開発環境が起動します。配布元は以下。
https://www.python.org/

-Terminalで確認すると以下の場所にインストールされていることがわかります。
 $ whitch python3  ← Terminal でコマンドの所在を確認
 /Library/Frameworks/Python.framework/Versions/3.8/bin/python3

-ライブラリ等の追加は Terminal から pip3 コマンドを使って行う前提です。

-ウインドウの中のプロンプト等は、Terminalで見えるものと同様ですが、ウインドウには専用のメニューが並びます。インタラクティブモード、スクリプトモード、同様に使えます。カレントディレクトリを意識することなく、普通にファイルを開いて走らせることができるので、Terminalの利用よりもハードルが下がります。

~

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

-公式サイト
https://www.anaconda.com/
-以下に、インストール情報があります。
--https://www.python.jp/install/anaconda/index.html
--[[Google:Anaconda インストール]]

-メニューの Environments から 3系を使う環境、2系を使う環境、Rを使う環境など、目的に応じた仮想環境をつくることができます。仮装環境ごとに各種開発パッケージやターミナルの起動が可能です。

-Python は様々なライブラリーを活用するのが前提です。Anaconda があれば、Environments のメニューから、環境にあったライブラリをインストールする作業が簡単に実行できます。

-GUI画面で必要なライブラリが見つからない場合は、Environments の ▶︎ から Open Terminal で[[ターミナル>Terminal]]を開いて(pip コマンドは使わず)conda コマンドでパッケージをインストールします。以下、例です。
//#image(pip.png,right,30%)
 $ conda install [ ライブラリ名 ]
#clear

-Anaconda での基本コマンド
Environments の ▶︎ から Open Terminal で、専用ターミナルを開いてから以下のコマンドが使えます。
--Anaconda自体のアップデート
 $ conda update -n base conda
--Anacondaの全パッケージのアップデート
 $ conda update --all
--Anacondaの特定のパッケージ(例:pandas)のアップデート
 $ conda update pandas

-''注意点''
--&color(red){Terminal環境を利用する方、また、シンプルに学習したい場合は、Anaconda のインストールは控えた方がいいかもしれません。以下のとおり、無難に扱うには、それなりに学習コストがかかります。};
--Anaconda のインストール先は、ホームディレクトリ直下です。
 /user/(ユーザ名)/anaconda3
インストール時に「自分専用にインストール」を選んでください。
「この場所にはインストールできません」と出て、「続ける」が押下できないことがありますが、「自分専用」のところを再度クリックすると、警告が消えてインストールできます。
--Anaconda は一部に独自技術を使用しているため、公式パッケージにはあっても Anaconda では利用できないものがあります。また標準的な Pythonの 仮想環境を利用しないため、通常であれば pip コマンドでインストールする作業も、Anaconda を使用する場合は、専用の Conda コマンド を使う必要があります。
--OS がデフォルトで提供する機能に干渉したり、Homebrew との相性が悪いなどの問題もあるので、Anaconda と Terminal環境の併用は避けるのが賢明です。
参考:http://onoz000.hatenablog.com/entry/2018/02/11/142347
~
~

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

~

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

個人のPCにインストールした場合は、起動と同時にローカルサーバーとブラウザが同時に起動して、以下のようなアドレスで接続されることになります。
 http://localhost:8888/tree (Xampp デフォルトのローカルポート)
通常の Python の対話モードと同様で quit() で終了します。

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

***Google Colaboratory
Google Colaboratory とは、Googleの仮想マシン上で動くIPythonの実行環境で、[[Jupyter Notebook>https://jupyter.org]] を利用します。Googleアカウントがあれば、ブラウザから誰でも無料で利用できます。特にAIを含むデータサイエンス系の開発では、クラウド上のGPU環境が使える点で、ローカル環境よりも優れています。登場以来、非常に注目を集めている存在です。
https://colab.research.google.com

また、[[Jupyter Notebook>https://jupyter.org]] は、ブラウザ上で Python のコードの編集とインタラクティブな実行ができるだけでなく、テキストドキュメントを挿入したノートとして情報共有する仕組みを実現したオープンソースのWebアプリケーションです。数値シミュレーション、統計モデリング、データの視覚化、機械学習などを得意とする、総合的なデータサイエンスツールです。


''使い方''
-ブラウザは Googleにログインして、GoogleDriveが使える状態に。
-https://colab.research.google.com にアクセス。
-「Python3 の新しいノートブック」をクリック。
-プログラムが書ける状態になります。
-コードは▶のボタンでセル単位で実行します。
結果を確認しながらコーディングできます。

-ファイル>保存で、プログラムファイルは Google Driveに保存されます。
~

***参考:Jupyter Notebookの公開について
分析の結果(JupyterNotebook)を他者に見せたい場合はどうするか・・
 JupyterNotebook のデータ(.ipynb)ファイルは、[[JSON]] 形式のテキストファイルなので、そのままだと意味不明の状態です。これを開発中のノート形式と同様に閲覧できるようにするには・・・

-GitHub にファイルを置く
https://github.com/koichi-inoue/JupyterNotebook/blob/master/DataVisualization02.ipynb
GitHub には、.ipynb をレンダリングする機能があるので、リポジトリに置かれたファイルはノート形式で閲覧できます(ただし現状では時々エラー)

-nbviewer でGitHub のファイルをレンダリング
nbviewer のレンダリングは優秀なので、こちらのサイトに誘導してリンク公開するとスムーズです。
https://nbviewer.jupyter.org/github/koichi-inoue/JupyterNotebook/blob/master/DataVisualization02.ipynb
~
~

**Python ツール・ライブラリ
***ツール・ライブラリ等のインストール
Terminal からのインストールには、pip3(2系は pip)を使います。以下のように、コマンド入力はいたって簡単です。
 $ pip3 install pygame ← ゲーム開発用のライブラリ
 $ pip3 install pyopengl ← 3DCG用のグラフィックライブラリ
 $ pip3 install jupyter ← jupyter notebook
 $ pip3 install orange3 ← データマイニングツール Orange3
~

***ライブラリ紹介
-''データ解析/分析'':以下のようなツールやライブラリがあります。
--[[NumPy>http://www.numpy.org/]]:数値計算のための拡張モジュール(修正BSD)
--[[SciPy>https://www.scipy.org/]]:NumPyベースの数値解析ソフトウェア(New BSD)
--[[NumPy>http://www.numpy.org/]]:行列演算等の数値計算モジュール(修正BSD)
--[[SciPy>https://www.scipy.org/]]:NumPyベースの数値解析(New BSD)
--[[Pandas>https://pandas.pydata.org/]]:データ解析用ライブラリ(BSD)
--[[matplotlib>https://matplotlib.org/]]:NumPyのためのグラフ描画ライブラリ(BSD)
--[[seaborn>https://seaborn.pydata.org/]]:matplotlibベースのビジュアライゼーションライブラリ(BSD)
--[[graph-tool>https://graph-tool.skewed.de/]]:グラフの操作および統計解析(GPL)
--[[scikit-learn>http://scikit-learn.org/stable/]]:NumPy, Matplotlib 互換の機械学習ライブラリ(BSD)
詳細:[[scikit-learn]]
--[[TensorFlow>https://www.tensorflow.org/]]:機械学習用ライブラリ(Apache License 2.0 by Google)
--[[Keras>https://keras.io/ja/]]:ニューラルネットワークライブラリ(MIT)

-''人工知能'':以下のようなツールやライブラリがあります。
--TensorFlow https://www.tensorflow.org/
--Keras https://keras.io/ja/
--Chainer http://chainer.org/
--Caffe http://caffe.berkeleyvision.org/
--Theano http://deeplearning.net/software/theano/index.html
--Torch http://torch.ch/
--scikit-learn http://scikit-learn.org/stable/
--PyML http://pyml.sourceforge.net/
--Pylearn2 http://deeplearning.net/software/pylearn2/
--PyBrain http://pybrain.org/pages/home

~

***インストール済みライブラリの確認
以下のコマンドで確認できます
 $ 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
  :
~
~