1. 変数
-
変数の参照先アドレスの確認: id(変数)
-
変数がローカルに存在するかどうかを調べる: if '変数名' in locals():
1.1. 型の変換
-
数値を文字列に変換: str(数値)
-
文字列を整数に変換: int(文字列)
1.2. 型の確認
-
オブジェクトの型の確認: type(オブジェクト)
1.3. 組み込み型
1.3.1. シーケンス型
-
要素数を数える: len(sequence)
str
-
文字列の定義: 文字列をシングルクォート(')またはダブルクォート(")で囲んで定義する(例 '文字列' または "文字列")
-
raw 文字列: r’文字列' でエスケープシーケンスを展開しない。
-
format 文字列: f'文字列{変数}' で、変数 の値に置き換えた文字列を作成する。
-
小数点以下を n 桁で表示する場合には、{変数:.n f}
-
-
文字列を区切り文字で分割してリストとして利用する: 文字列.split()
-
文字列の長さの取得: len(文字列)
コード
-
改行コード: \n
-
行頭復帰コード: \r
list
-
リストの定義: 例 list = [value1, value2, value3, value4, …]
-
データの取り出し
-
i 番目の要素: list[_i]
-
最後の要素: list[-1]
-
-
リストに要素の追加: list.append(追加するデータ)
-
複数の要素を追加する場合: list += [追加するデータ1, 追加するデータ2, …]
-
-
i 番目の要素の削除: list.pop(i)
-
リストの要素の数を調べる: len(list)
-
リストの要素の最大値を求める: max(list)
-
リストの要素の最小値を求める: min(list)
-
リストに要素が含まれているかを判断する: 要素 in list
tuple
-
要素の値を変更できない配列。
-
カンマ区切りで定義。通常は () が用いられる。例 tuple = (value1, value2, value3, value4, …)
-
リストをタプルに変換する: tuple(list)
1.3.2. range
-
range(N): 0 以上 N 未満の連番の整数の range 型オブジェクトを生成する。
-
等差数列の range 型オブジェクトを生成する: range(start, stop, step) (初項: start, 公差: step の等差数列 n (start <= n < stop ) を要素に持つ range 型オブジェクトを生成する。step を省略すると、1 が設定される)
1.3.3. マッピング型
dict, 辞書型
-
辞書の宣言: dict = {}
-
要素を定義: dict = {key1: value1, key2: value2, key3: value3, …}
-
要素を追加: dict[key] = value
-
複数の要素を追加: dict.update({key1: value1, key2: value2, key3: value3, …})
-
キーの一覧を取得する: dict.keys()
2. 繰り返し処理
2.1. while文
while 条件式: 条件式が真の場合に実行される処理
i = 0 while i < N: 実行文 i += 1
2.2. for文
for 変数 in オブジェクト: 実行される処理
for i in range(N): 実行文
3. 条件式
if 条件式1: 条件式1が真の場合に実行される処理 elif 条件式2: 条件式2が真の場合に実行される処理 ... else: すべての条件式が偽の場合に実行される処理
-
複数の条件の指定
-
論理積: 条件式1 and 条件式2
-
論理和: 条件式1 or 条件式2
-
4. 置換
-
文字列.replace(置き換えられる文字列, 置き換わる文字列)
5. 例外処理
try: 処理 except: 例外処理
6. 乱数
乱数を作成するモジュールとして、Python 標準ライブラリの random モジュールを用いる方法がある。
-
インポート: import random
-
0.0 以上 1.0 未満の乱数を生成する: random.random()。(float型)
7. ファイルの読み込み
-
open を利用する方法
-
ファイルを読み込み用に開く: f = open('ファイル名', 'r')
-
ファイルを読み込む
-
ファイル全体を読み込む: f .read()
-
行単位にリストとして読み込む: f .readlines()
-
-
ファイルを閉じる: f.close()
-
8. 関数
def 関数名(引数1, 引数2, ...): 処理
-
戻り値: return 戻り値 で指定する。
-
複数の戻り値を返す場合は、カンマ区切り(タプル)で与える: return 戻り値1, 戻り値2
9. クラス
-
クラスの定義
class Class名: クラスフィールド = クラスフィールドの値 def __init__(self, 引数1, 引数2, ...): 処理
-
メソッドの定義
def メソッド(self, 引数1, 引数2, ...): 処理
-
インスタンスフィールド: self.フィールド名
-
アクセス制御: フィールドやメソッド名の前にアンダースコアを2つつけると外からアクセスができなくなる。
-
インスタンスの生成: Class(引数1, 引数2, …)
10. モジュール、パッケージの利用
-
モジュールまたはパッケージのインポート: import モジュール名 or import パッケージ名
-
モジュールを別名でインポート: import モジュール名 as 名前
-
自作のモジュールを使う場合には、モジュール名は、ファイル名から .py を除いた部分となる。
-
-
モジュールの中から特定の関数やクラスなどをインポート: from モジュール import 関数名 or クラス名
-
読み込んだモジュールの関数を利用: モジュール名.関数名
11. re モジュール
-
インポート: import re
-
文字列を区切り文字で分割したリストを作成する: re.split('区切り文字', 文字列)
-
'区切り文字' には、正規表現が使用可能。複数の条件で分割したい場合には、'[…]' を使用する。
-
-
文字列の先頭とパターンがマッチするかを判断する: re.match('パターン', 文字列)
-
文字列全体とパターンがマッチするかを判断する: re.search('パターン', 文字列)
12. os モジュール
os に関連した関数を集めたモジュール
-
インポート: import os
-
パスを結合する: os.path.join(パス1, パス2)
-
os.environ を使用して環境変数を取り扱う。
-
環境変数の一覧を取得する: print(os.environ)
-
特定の環境変数を取得する: os.environ.get("環境変数")
-
-
ファイルの情報を取得する: os.stat(ファイル名)
-
ファイル、ディレクトリの一覧を取得する: os.listdir(パス)
-
ファイルパスからディレクトリを抽出する: os.path.dirname(ファイルパス)
-
ファイルパスからファイル名を抽出する: os.path.basename(ファイルパス)
-
ファイルが存在するかどうかを調べる: os.path.isfile(ファイル名)
-
ディレクトリが存在するかどうかを調べる: os.path.isdir(ディレクトリパス)
-
ディレクトリを作成する: os.mkdir(ディレクトリパス)
13. glob モジュール
-
インポート: import glob
14. shutil モジュール
-
インポート: import shutil
-
ファイルの移動: shutil.move(元のファイル, 移動先)
15. subprocess モジュール
-
インポート: import subprocess
-
コマンドを実行する: subprocess.run(コマンド)
-
コマンドを引数を与えて実行する: subprocess.run([コマンド, 引数])
-
フォルダ開く:subprocess.run(['explorer', パス], shell=True)
-
16. tkinter モジュール
python で GUI を扱うためのライブラリ。python の標準のライブラリ
-
ファイルを選択するダイアログを作成する。
from tkinter import filedialog
type = [('ラベル1', '拡張子1'), ('ラベル2', '拡張子2'), ...] dir = ディレクトリ file = filedialog.askopenfilename(title="タイトル", filetypes=type, initialdir=dir)
-
ディレクトリを選択するダイアログを作成する。
from tkinter import filedialog
dir = ディレクトリ file = filedialog.askdirectory(title="タイトル", initialdir=dir)
17. pywin32 ライブラリ
-
インストール: pip install pywin32
-
インポート: import win32com.client as win32
-
Excel
-
Excel に接続: excel = win32.Dispatch("Excel.Application")
-
Excel ファイルを開く: wb = excel.Workbooks.Open(excelファイル)
-
Excel ファイルを閉じる: wb.Close()
-
-
PowerPoint
-
Powerpoint に接続: powerpoint = win32.Dispatch("PowerPoint.Application")
-
18. pydicom モジュール
DICOM ファイルを扱うモジュール
18.1. 使用法
-
インストール: pip install pydicom
-
インポート: import pydicom
-
DICOM ファイルの読み込み: ds = pydicom.dcmread(読み込むファイル名)。ds は DICOM データセット (pydicom.dataset.FileDataset 型)。
-
DICOM ファイルの書き出し: ds.save_as(書き出す先のファイル名, write_like_original=False)。
-
ds.dir(): キーワードの一覧を出力する。
18.2. CT
-
CT 画像を取得する: ds.pixel_array (numpy.ndarray 型 (要素のデータ型は int16))
-
CT 画像の横のピクセル数 (0028, 0010): ds.Rows (int 型)
-
CT 画像の縦のピクセル数 (0028, 0011): ds.Columns (int 型)
-
CT 画像のピクセル間隔 (0028, 0030): ds.PixelSpacing (pydicom.multival.MultiValue 型)
19. matplotlib モジュール
データの可視化用ライブラリ。グラフ全体を管理する Figure クラスとひとつのグラフを管理する Axes クラスのインスタンスを生成してグラフを作成する。
-
インストール: pip install matplotlib
-
インポート: import matplotlib.pyplot as plt
-
2次元配列の表示: plt.imshow(img)
-
Figure インスタンスの作成: fig = plt.figure()
-
Axes インスタンスの作成: ax = fig.add_subplot()
-
ax の X 座標の表示範囲を定義する: ax.set_xlim(Xmin, Xmax)
-
ax の Y 座標の表示範囲を定義する: ax.set_ylim(Ymin, Ymax)
-
カラーバーを表示する: plot.colorbar()
20. NumPy ライブラリ
-
インストール: pip install numpy
-
インポート: import numpy as np
-
ndarray の生成
-
リストから生成: np.array([データ1, データ2, …])
-
ファイルにあるデータから ndarray に読み込む: np.loadtxt('ファイル名')
-
等差数列の ndarray を生成する: np.arange(start, stop, step) (初項: start, 公差: step の等差数列 n (start <= n < stop ) を要素に持つ ndarray を生成する。)
-
ある配列と同じ shape で 0 を要素に持つ配列を作成する。: np.zeros_like(配列)
-
-
ndarray の情報を調べる。
-
データの全要素数: ndarray.size
-
データの各次元の要素数: ndarray.shapse
-
データの次元数: ndarray.ndim
-
データの要素の型: ndarray.dtype
-
-
列の並べ替え: ndarray[:, [列1, 列2, 列3, …]] (列n は並べ替える前の列のインデックスを、並べ替えたい順に書く)
-
要素の型を変換する: ndarray.astype('型名')。例: ndarray.astype('uint16')
-
要素を追加した ndarray を生成する: np.append(ndarray, 要素)
21. Pandas ライブラリ
データ解析用のライブラリ。Series 型が 1 次元のデータを扱い、DataFrame 型が 2 次元の表形式のデータを扱う。 DataFrame は、2 次元配列のデータと行のラベルを表す index, 列名を表す columns から構成される。
-
インストール: pip install pandas
-
インポート: import pandas as pd
21.1. ファイルから DataFrame を読み込む
21.1.1. excel, csv ファイルからの読み込み
-
csv ファイルの読み込み: df = pd.read_csv(ファイル名, sep=",")。 (df は DataFrame 型)
-
一行目がヘッダとして取り扱われ、columns に列名として割り当てられる。
-
読み込む csv ファイルにヘッダがないときには、read_csv() の引数に header=None を追加して読み込ませる。 列名を設定する場合は、names=['列1', '列2', '列3', …] を引数に追加する。
-
特定の列をインデックスに指定する。
-
特定の列をインデックスに指定する場合は、index_col = 列番号 を引数に追加する。
-
複数の列をインデックスに指定する場合は、index_col=['列名1', '列名2', '列名3', …] を引数に追加する。
-
-
日本語を含むファイルを取り扱う場合は、使用している文字コードを encoding='文字コード' のように引数に入れる (例: encoding='shift_jis')。
-
最初の n 行を無視して読み込む場合は、skiprows = n を引数に追加する。
-
最後の n 行を無視して読み込む場合は、skipfooter = n と engine = 'python' を引数に追加する。
-
各列の型を指定する: dtype={0: 型1, 1: 型2, 2: 型3, …} を引数に追加する。
-
カンマ区切りの数値を数値として読み込む (そのままでは object 型として読み込まれる) 場合は thousand = ',' を引数に追加する。
-
21.1.2. excel ファイルからの読み込み
-
excel ファイルの読み込み: df = pd.read_excel(ファイル名, sheet_name = シート名)
-
engine="odf" を引数に追加することで、LibreOffice Calc 形式のファイルを読むことができる。
-
-
excel ファイルからすべてのシートを取得する: df = pd.read_excel(ファイル名, sheet_name = None)。df は、シート名を key、各シートのデータを要素とする辞書型。
21.2. DataFrame の操作
21.2.1. DataFrame の作成
-
DataFrame の作成: df = pd.DataFrame(data=データ)
-
data を指定しないで df = pd.DataFrame() とすると、空の DataFrame が作成される。
-
行名、列名を追加する場合には、index = 行ラベル, columns=列ラベル を引数として追加する。ここで 行ラベル, 列ラベル は、リスト等で指定する。
-
-
型の確認
-
データフレーム全体の型の確認: print(df.dtypes)
-
特定の列の型の確認: print(df['列名'].dtypes)
-
-
列の型を変更する
-
時系列以外の型に変換: df['列名'] = df['列名'].astype(型名)
-
時系列の型 (datetime64[ns] 型) に変換: df['列名'] = pd.to_datetime(['列名'])
-
日付部分のみのデータに変換したい場合 (object 型): df['列名'] = pd.to_datetime(['列名']).dt.date
-
-
21.2.2. DataFrame の操作
-
列名情報を取得する:
-
Index オブジェクトとして取得する: df.columns
-
ndarray 型で取得する: df.columns.values
-
リスト型で取得する: df.columns.values.tolist()
-
-
インデックス情報を取得する:
-
Index オブジェクトとして取得する: df.index
-
ndarray 型で取得する: df.index.values
-
リスト型で取得する: df.index.values.tolist()
-
-
データ部分を ndarray 型で取得する: df.to_numpy()
-
指定した列をインデックスとする
-
特定の列をインデックスに指定した DataFrame を作成する: df.set_index('列名')
-
複数の列をインデックスに指定した DataFrame を作成する: df.set_index(['列名1', '列名2', '列名3', …])
-
-
行数を取得する: len(df)
-
列番号を取得する: df.columns.get_loc('列名')
-
特定の列を削除する: df.drop(columns=['削除したい列のラベル1', '削除したい列のラベル2', …], inplace=True)
-
特定の例を抜き出した DataFrame を作成する: df[['列1', '列2', … ]]
-
NaN を含む行を削除した DataFrame を作成する: df.dropna()
-
NaN を置換した DataFrame を作成する: df.fillna(置換する文字)
-
新しい列を追加する。
-
以下は、列1と列2を足した列を追加する例:
-
df['新しい列名'] = df['列1'] + df['列2']
-
DataFrame からデータを1行ずつ取り出し、処理を行う:
for index, rows in df.iterrows(): 行ごとの処理 (index には行名、rows には各行のデータ (Series 型) が与えられる)
-
DataFrame から行番号、列番号を用いてデータを抽出する:
-
行 行目, 列 列目のデータを抽出する: df.iloc[行, 列]
-
-
特定の列の累積和の計算: df[列名].cumsum()
-
列を並べ替える: df.reindex(index=['列名1', '列名2', '列名3',…])
-
ソート
-
行名をもとにソート: df.sort.index()
-
指定した列の値を元にソート: df.sort.index('列名')
-
降順にソートする場合は、引数に ascending=False を追加する。
-
-
-
置換
-
特定の列の文字列の置換を行う。 df['列名']=df['列名'].str.replace('置換される文字列', "置換後の文字列")
-
-
DataFrame を連結する
-
行方向に連結する (縦結合): df_merged = pd.concat([df1, df2], axis = 0)
-
列方向に連結する (横結合): df_merged = pd.concat([df1, df2], axis = 1)
-
-
DataFrame のオブジェクトのコピーを生成する: df.copy()
21.2.3. Series の操作
-
Series をリスト型に変換する: s.tolist()
-
Series からデータを抽出する: s.iloc[番号]
-
Series を DataFrame に変換する: s.to_frame()
-
DataFrame に Series を新しい列として追加する: df['列名'] = s
21.3. ファイルへの出力
-
csv で保存する: df.to_csv(ファイル名)
-
日本語を含む場合は、encoding='文字コード' (例 encoding='shift_jis') を引数に追加する。
-
ヘッダを出力しない場合は、header=False を引数に追加する。
-
インデックスを出力しない場合は、index=False を引数に追加する。
-
書き込む行を指定する場合は、startrow=行 を引数に追加する。
-
書き込む列を指定する場合は、startcol=列 を引数に追加する。
-
22. openpyxl ライブラリ
Excel ファイルを操作するライブラリ。
-
インストール: pip install openpyxl
-
インポート: import openpyxl
-
book を作成: book = openpyxl.Workbook()
-
book から Sheet という名前のシート取得: sheet = book['Sheet']
-
シートの名前を変更する: sheet.title = 'シート名'
-
シートを追加する: book.create_sheet(title = 'シート名')
-
シートに行を追加する: sheet.append(['データ1', 'データ2', 'データ3', …])
-
列番号をアルファベットに変換する: openpyxl.utils.get_column_letter(列番号)
-
book の保存: book.save(ファイル名)
23. Pillow モジュール
画像処理ライブラリ
-
インストール: pip install Pillow
-
インポート: from PIL import Image
-
画像の読み込み: im = Image.open(ファイル名)
-
サイズ: im.size (tuple 型)
-
横幅: im.width
-
縦幅: im.height
-
-
画像を表示する: im.show()
-
画像のサイズを変更する: im_resize = im.resize(サイズ)
-
画像のトリミング: im.crop(トリミングの範囲)。トリミングの範囲は、(左、上、右、下) のように座標で指定する。
-
画像を保存: im.save(ファイル名)
-
quality = n を引数に入れることで品質を指定できる。デフォルトは n = 75。
-
24. OpenCV モジュール
-
インストール: pip install opencv-python
-
インポート: import cv2
25. tabula モジュール
-
インストール: pip install tabula-py
-
インポート: import tabula
-
ファイルの読み込み: dfs = tabula.read_pdf(PDFファイル名)。dfs は、pandas.core.frame.DataFrame 型を要素に持つリスト。
-
ページ数を指定する場合は、pages = 'ページ数' を引数に追加して指定する。デフォルトでは最初のページのみが読み込まれる。
-
すべてのページを読み込む場合は、pages = 'all' を引数に追加する。
-
枠線で区切られている表のみを抽出する場合は、lattice=True を引数に追加する。
-
26. paramiko モジュール
-
インストール: pip install paramiko
-
インポート: import paramiko
-
ファイルの転送例 (公開鍵暗号に Ed25519 を使用している場合)。
HOST = 'ホスト' USER = 'ユーザ名' KEY_FILE = '秘密鍵' LOCAL_PATH = '転送元のファイル名' REMOTE_PATH = '転送先のファイル名' private_key = paramiko.Ed25519Key.from_private_key_file(KEY_FILE) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(HOST, username = USER, password = private_key) sftp = ssh.open_sftp() sftp.put(LOCAL_PATH, REMOTE_PATH) sftp.close() ssh.close()
27. pylint モジュール
-
インストール: pip install pylint
-
Graphviz が必要。
-
クラス図を生成する (package名 はフォルダでも良い): pyreverse -o 出力形式 package名
28. SciPy
-
インストール: pip install scipy
29. pip
-
pip が実行できない場合 (パスが通っていない場合) は、代わりに py -m pip を用いる。例: py -m pip install
-
インストールされているパッケージの確認: pip list
-
インストールされているパッケージの詳細の確認: pip show パッケージ名
30. その他
-
インストールされている Python のバージョンを表示する: python --version または python -V
-
インストールされている Python のバージョンを確認する: py -0p
-
複数のバージョンが存在するときには、* が付いている方がデフォルトに設定されている。
-
-
複数のバージョンが存在する場合には py -m バージョン … で特定のバージョンを指定して実行が可能。例: 3.11 にインストールされているモジュールを調べるには、py -3.11 -m pip list
-
Windows にて環境変数の一覧を表示する: set