= Pythonの基礎 = <> == 準備 == コマンドライン操作:LinxCommand <
> Pythonのインストール:PythonInstall, MatplotlibTutorial <
> 公式ドキュメント([[https://docs.python.org/ja/3/|日本語]])<
> === コマンドライン操作 === MacやLinuxではターミナルというアプリケーションを使う。 Windowsでは、コマンドプロンプトや!PowerShellというアプリケーションを使う。タスクバーの検索欄に"cmd"や"powershell"と入力するとアプリケーションを探してくれるので、それを選んで実行する。 ターミナルではフォルダ(ディレクトリ)やファイル操作(コピー、移動、表示など)、他のアプリケーションの起動など様々なことができる。普段、マウスを使って視覚的にコンピュータを使って行う操作のほとんどはターミナルでコマンドを実行することで行うことが可能である。ターミナルで作業をする上で意識しなければならないことに、作業ディレクトリという概念がある。今、どのディレクトリにいる状態で作業するかによって、ファイルの場所(パス、path)の指定の仕方が変わってくる。ファイルを扱う上では相対パスと絶対パスの違いを理解する必要がある。 == 変数とリスト == Pythonで変数を使うときにはデータの型を明示的に指定しない。変数は宣言不要で、どのような型のデータでも代入可能である。但し、変数はデータの型情報を保持しているので無効な計算はエラーになる。他のプログラミング言語の経験があれば以下のコード例で、変数の使用方法は分かるだろう。 {{{ a = 1 b = 2.3 c = 'Hello' print(a, b, c) print('a=%4d, b=$10.5f, c=%20s' % (a, b, c) ) print('a + b = %10.5f' % a+b) a + c # --> エラー d = [ a, b, c ] print(d) }}} || '''型''' || '''書き方''' || '''説明''' || || 整数 || 1, -3|| 普通の整数の書き方 || || 浮動小数点数 || 1.23, -4.5, 6.7E+6 || 普通の浮動小数点数の書き方 || || 文字列 || 'Hello', "World" """String in multiple lines""" || 文字列を囲む引用符は'でも"でもよい || || リスト || [1.0, 3, 'abc' ] || 複数のデータの集まり。[]の中にカンマで区切ってデータを並べればよい || || 関数 || || || || オブジェクト || || || == 関数 == 数学の関数y=f(x)やy=f(x1, x2, ..., xN)のように入力データを与えると計算結果を返してくるもの。よく使うコードをまとめておいて簡単に呼び出せるので便利。 * 入力データ:引数とよぶ * 出力データ:戻り値または返り値と呼ぶ == モジュール == 他の人が作ったコードをモジュールとして利用できる。他のプログラミング言語ではライブラリと呼ばれることが多い。例えば、数学関数等はmathモジュールをインポートすることで利用できる。 {{{ import math math.sqrt(2.0) math.sin(30.0*math.pi/180.0) }}} === numpyモジュール === リストに対する演算等を便利にしたもの。多次元配列(テンソル)の使用や要素への演算をリストに対する操作で実行できる。 === matplotlib.pyplotモジュール === グラフを表示するためのもの。 {{{ import numpy as np import matplotlib.pyplot as plt x = np.arange(-100, 100, 0.1) y1 = np.sin(x)/x y2 = 0.0002*(x**2) plt.plot(x, y1) plt.plot(x, y2) plt.show() }}} == ファイル入出力 == === データファイルからの読み込み === データファイルxyz.datの内容。 {{{ # x y z 0 0 0 1 0 0 2 1 0 3 1 1 4 0 1 5 0 1 6 0 0 7 0 0 8 1 0 9 1 1 10 0 1 11 0 1 12 0 0 13 0 0 14 1 0 15 1 1 16 0 1 17 0 1 }}} readFromFile.pyの内容。 {{{ #!/usr/bin/env python3 import numpy as np import matplotlib.pyplot as plt data = np.loadtxt('xyz.dat') print(data) plt.plot(data[:,0], data[:,1], color='red', marker='v') plt.plot(data[:,0], data[:,2], color='blue', marker='o') plt.show() }}} === データのファイルへの保存 === {{{ #!/usr/bin/env python3 import os import numpy as np import matplotlib.pyplot as plt data = np.loadtxt('xyz.dat') data[0] = [ 10, 10, 10] fout = open('out.dat', 'w') np.savetxt('xyz2.dat', data) fout.close() }}} == 関数のフィット == {{{ import numpy as np import matplotlib.pyplot as plt import scipy.optimize def f1(x, a, b): return a*x + b x = np.arange(0, 10, 1.0) y = 2.0*x y[2] += 0.2 y[5] -= 1.5 params, cov = scipy.optimize.curve_fit(f1, x, y) plt.plot(x, y, marker='o', linestyle='None') plt.plot(x, f1(x, *params) ) plt.show() }}}