Python Basics
Pythonのプログラムの作成と実行
-
方法1: C言語のように,テキスト形式でプログラムを書いて実行
$ vi program.py # プログラム作成 $ python program.py # プログラム実行
注) Pythonはインタプリタ型言語なのでコンパイルは不要。
-
方法2: jupyter notebookやIpython等を用いてインタラクティブに実行
コメント
- #:1行コメント
- 複数行コメント:“““コメント””” ※ダブルクォートの代わりにシングルを使っても良い →ドックストリング
モジュール・パッケージ・ライブラリ
- モジュール: クラスや関数を記述したファイル(.py)
- パッケージ: いくつかのモジュールを一つのディレクトリ(フォルダ)にまとめたもの
- ライブラリ: いくつかのパッケージをまとめたもの。モジュールやパッケージをライブラリと呼ぶこともある
- 標準ライブラリ
- 外部ライブラリ:追加インストール必要
- NumPy: 数値計算用の多次元配列ライブラリ。C言語で作られているので高速
- SciPy: 科学計算ライブラリ
- pandas: データフレーム(エクセルのような表形式)のデータ解析ライブラリ
- scikit-learn: 機械学習ライブラリ
モジュールやパッケージ,ライブラリに含まれるオブジェクト(クラスや関数等)を使うには,以下の例のようにimport
を用いて読み込みを行う。
Pythonのデータ型について
すべてのPythonオブジェクトはC言語の構造体で定義されており、C言語等の静的型付言語などと比べてオーバーヘッドが生じる
【例】 integer(long)型
struct _longobject{
long ob_refcnt;
PyTypeObject ob_type;
size_t ob_size;
long ob_digit[1];
};
- ob_refcnt : Pythonが目盛りの割当と解除を自動的に行うための参照カウンタ
- ob_type : 変数の方を表すコード
- ob_size : この後に続くデータの大きさ
- ob_digit : このPython変数が持つ実際の整数値
PythonリストとNumpy配列
種類 | 概要 |
---|---|
Pytonリスト | ポインタ列へのポインタを格納した動的配列。各ポインタは完全なPythonオブジェクトを示すため、柔軟性に利点を持つ一方ですべての変数が同じ方であるケースでは情報が冗長になる。 |
Numpy配列 | すべてのデータの型が同じ固定型の配列のため柔軟性に欠ける一方でデータの保存と操作がはるかに効率的 |
immutable と mutable
関数の引数(仮引数)の値を関数内で変更した場合,引数が**immutable(変更不可)**な型ならば呼び出した側の引数(実引数)は変化しない。**mutable(変更可能)**ならば,実引数も変化。
- immutable:
int
,float
,str
,tuple
等 - mutable:
list
,dict
,set
等(これらについては後述)
immutableな引数については, 返り値を使って更新するようにする。