Jupyter LabでPythonを使う

Jupyter Lab/Notebook

Pythonは手軽に利用できるスクリプト言語で、数値や文字列を使ったプログラムを簡単に開発・実行できる。自分のデスクトップPCにPythonの開発・実行環境をインストールして利用することもできるが、Jupyterプロジェクトでは、様々なプログラミング言語に対して、ウェブ・ブラウザを使ったプログラミング言語の実行環境を提供している。

Jupyter/tryからJupyterLabを選択し、新規にPython用のノートブックを作成するとコードを入力するための画面が表示される。

jupyterTry.png jupyterNbNew.png jupyterNbPython.png

この演習では、JupyterLabでPython用のNotebookを新たに作成してコードを記述していく。

Pythonの基礎

PythonはC/C++やJava言語と比べて以下の特徴があり、手軽に利用できるプログラミング言語である。

整数値データの演算

整数データの演算を行って、結果を出力する。

a = 11
b = 23
c = a + b
print('%d + %d = %d' % (a, b, c) )

実数値データの演算

実数データを使って計算する。標準的な数学関数(平方根や三角関数など)を使う。

import math
a = 2.0
b = math.sqrt(a)
print('sqrt(%f) = %f' % (a, b) )

配列データ

複数のデータをデータの配列としてまとめて扱う。また、配列の各要素に添え字を使ってアクセスする。新しい配列にデータを追加する。

a = [ 1.0, 2.0, 3.0, 4.0, 5.0 ]
print(a)
print(sum(a))

b = []
for x in a:
  b.append(x*x)
print(b)

Numpyの使用

配列データや多次元配列(行列やテンソル)の演算をするのに、numpyというライブラリの機能を使うことで、多次元配列に対する処理のみを記述することで実行できる。これにより、各要素にアクセスするためのループを書かずに済むため、簡潔なコードを書けることと高速化が可能になる。

import numpy as np
a = np.arange(0.0, 10.0, 1.0)
b = a*a
print(a)
print(b)

Matplotlibによる描画

データをグラフ化するためにMatplotlibというライブラリを利用できる。以下のコードでは次のようなデータを描画している。

また、最後にX, Y座標のデータをファイルに出力する方法を示す。ファイルは../dataという別のフォルダに作成されるようにファイル名を指定している。

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0.0, 100.0, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()
plt.hist(y, bins=100, range=(-1.0, 1.0))
plt.xlabel('Y')
plt.ylabel('Counts')
plt.show()

fout = open('../data/2022ALH1_sindata.dat', 'w')
for i in range(len(x)):
  fout.write('%10.5f %10.5f\n' % (x[i], y[i]) )
fout.close()

2次元データのフィット

線形モデル

未知のパラメータに関して1次関数として表される関数を線形モデルと呼ぶ。線形モデルについては、カイ2乗を最小化するパラメータを解析的に求めることが可能である。具体的の定式化はここを参照。

直線のフィット

a, b = 2.0, -3.0
x = np.arange(1.0, 10.0, 1.0)
y = a*x + b
plt.plot(x, y)

2次関数によるフィット

ガウス分布のフィット

データファイルのアップロード

PythonJupyter (最終更新日時 2022-12-12 09:15:42 更新者 TakanoriKono)