1. 変数

  • 変数の参照先アドレスの確認: id(変数)

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]

  • リストに要素の追加: list.append(追加するデータ)

  • i 番目の要素の削除: list.pop(i)

  • リストの要素の数を調べる: len(list)

tuple
  • 後から要素の値を変更できないリスト。

  • カンマ区切りで定義。通常は () を用いて使われる。例 tuple = (value1, value2, value3, value4)

1.3.2. range

  • range(N): 0 以上 N 未満の連番の整数のリストを生成する。

1.3.3. マッピング型

dict
  • {} を用いて定義: 例 {key1: value1, key2: value2, key3: value3}

2. 繰り返し処理

2.1. while文

while 条件式:
  条件式が真の場合に実行される処理
Example 1. 変数 i を 0 から始めて i が N-1 となるまで実行文を N 回を繰り返す。
i = 0
while i < N:
  実行文
  i += 1

2.2. for文

for 変数 in オブジェクト:
  実行される処理
Example 2. 変数 i を 0 から始めて i が N-1 となるまで実行文を N 回を繰り返す。
for i < 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. 関数

def 関数名(引数1, 引数2, ...):
    処理
  • 戻り値: return 戻り値 で指定する。

  • 複数の戻り値を返す場合は、カンマ区切り(タプル)で与える: return 戻り値1, 戻り値2

8. クラス

  • クラスの定義

class Class名:
    クラスフィールド = クラスフィールドの値
    def __init__(self, 引数1, 引数2, ...):
        処理
  • メソッドの定義

def メソッド(self, 引数1, 引数2, ...):
    処理
  • インスタンスフィールド: self.フィールド名

  • アクセス制御: フィールドやメソッド名の前にアンダースコアを2つつけると外からアクセスができなくなる。

  • インスタンスの生成: Class(引数1, 引数2, …​)

9. re モジュール

  • インポート: import re

  • 文字列を区切り文字で分割したリストを作成する: re.split('区切り文字', 文字列)

    • '区切り文字' には、正規表現が使用可能。複数の条件で分割したい場合には、'[…​]' を使用する。

10. os モジュール

os に関連した関数を集めたモジュール
  • インポート: import os

  • パスを結合する: os.path.join(パス1, パス2)

  • os.environ を使用して環境変数を取り扱う。

    • 環境変数の一覧を取得する: print(os.environ)

    • 特定の環境変数を取得する: os.environ.get("環境変数")

  • ファイルの情報を取得する: os.stat(ファイル名)

  • ファイル、ディレクトリの一覧を取得する: os.listdir(パス)

  • ファイルパスからディレクトリを抽出する: os.dirname(ファイルパス)

  • ファイルパスからファイル名を抽出する: os.path.basename(ファイルパス)

  • ファイルが存在するかどうかを調べる: os.isfile(ファイル名)

  • ディレクトリが存在するかどうかを調べる: os.isdir(ディレクトリパス)

  • ディレクトリを作成する: os.mkdir(ディレクトリパス)

11. glob モジュール

  • インポート: import glob

12. shutil モジュール

  • インポート: import shutil

  • ファイルの移動: shutil.move(元のファイル, 移動先)

13. subprocess モジュール

  • インポート: import subprocess

  • コマンドを実行する: subprocess.run(コマンド)

  • コマンドを引数を与えて実行する: subprocess.run([コマンド, 引数])

    • フォルダ開く:subprocess.run(['explorer', パス], shell=True)

14. 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)

15. 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")

16. pydicom モジュール

DICOM ファイルを扱うモジュール

16.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(): キーワードの一覧を出力する。

16.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 型)

17. matplotlib モジュール

  • インストール: pip install matplotlib

  • インポート: import matplotlib.pyplot as plt

  • 画像の表示: plot.imshow()

18. 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 < end ) を要素に持つ 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')

19. Pandas ライブラリ

データ解析用のライブラリ。
  • インストール: pip install pandas

  • インポート: import pandas as pd

  • DataFrame の作成: df = pd.DataFrame(data=データ)

    • data を指定しないで df = pd.DataFrame() とすると、空の DataFrame が作成される。

    • 行名、列名を追加する場合には、index = 行名, columns=列名 を引数として追加する。

  • csv ファイルの読み込み: df = pd.read_csv(ファイル名, sep=",")。 (df は pandas.core.frame.DataFrame 型)

    • 一行目がヘッダとして読み込まれる。列名は columns に割り当てられる。

    • 読み込む csv ファイルにヘッダがないときには、read_csv() の引数に header=None を追加して読み込ませる。 列名を設定する場合は、names=['列1', '列2', '列3', …​] を引数に追加する。

    • 日本語を含むファイルを取り扱う場合は、encoding='文字コード’を引数に入れる。

      • 文字コードには使用している文字コードを入れる。例 encoding='shift_jis'。

    • 最初の n 行を無視して読み込む場合は、skiprows = n を引数に追加する。

    • 最後の n 行を無視して読み込む場合は、skipfooter = n と engine = 'python' を引数に追加する。

    • 型を指定する: dtype={0: 型1, 1: 型2, 2: 型3, …​} を引数に追加する。

  • excel ファイルの読み込み: df = pd.read_excel(ファイル名, sheet_name = シート名)

    • engine="odf" を引数に追加することで、LibreOffice Calc 形式のファイルを読むことができる。

  • 型の確認

    • データフレーム全体の型の確認: print(df.dtypes)

    • 特定の列の型の確認: print(df['列名'].dtypes)

  • ヘッダ情報を取得する: df.columns (pandas.core.series.Series型)

  • 列の型を変更する: df['列名'] = df['列名'].astype(型名)

  • 列を削除する: df.drop(columns=['削除したい列のラベル1', '削除したい列のラベル2', …​], inplace=True)

  • DataFrame からデータを1行ずつ取り出す:

for index, rows in df.iterrows():
    行ごとの処理 (index には行名、rows には各行のデータ (pandas.core.series.Series 型) が与えられる)
  • 新しい列を追加する。

    • 以下は、列1列2を足した列を追加する例:

df[_新しい列名_] = df[_列1_] + df[_列2_]
  • 累積和の計算: df.cumsum()

  • インデックスをもとにソート: df.sort.index()

    • 降順にソートする場合は、引数に ascending=False を追加する。

  • csv で保存する: df.to_csv(ファイル名)

    • 日本語を含む場合は、encoding='文字コード' (例 encoding='shift_jis') を引数に追加する。

    • ヘッダを出力しない場合は、header=False を引数に追加する。

    • インデックスを出力しない場合は、index=False を引数に追加する。

    • 書き込む行を指定する場合は、startrow= を引数に追加する。

    • 書き込む列を指定する場合は、startcol= を引数に追加する。

20. openpyxl ライブラリ

  • インストール: pip install openpyxl

  • インポート: import openpyxl

  • book を作成: book = openpyxl.Workbook()

  • sheet を取得: sheet = book['Sheet']

  • sheet の名前を変更する: sheet.title = 'シート名'

  • sheet を追加する: book.create_sheet(title='シート名')

  • book の保存: book.save(ファイル名)

21. 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。

22. OpenCV モジュール

  • インストール: pip install opencv-python

  • インポート: import cv2

23. tabula モジュール

  • インストール: pip install tabula-py

  • インポート: import tabula

  • ファイルの読み込み: dfs = tabula.read_pdf(PDFファイル名)。dfs は、pandas.core.frame.DataFrame 型を要素に持つリスト。

    • ページ数を指定する場合は、pages = 'ページ数' を引数に追加して指定する。

    • 枠線で区切られている表のみを抽出する場合は、lattice=True を引数に追加する。

24. 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()

25. pylint モジュール

  • インストール: pip install pylint

  • Graphviz が必要。

  • クラス図を生成する (package名 はフォルダでも良い): pyreverse -o 出力形式 package名

26. SciPy

  • インストール: pip install scipy

27. pip

  • pip が実行できない場合 (パスが通っていない場合) は、代わりに py -m pip を用いる。例: py -m pip install

  • インストールされているパッケージの確認: pip list

  • インストールされているパッケージの詳細の確認: pip show パッケージ名

28. その他

  • インストールされている Python のバージョンを表示する: python --version または python -V

  • インストールされている Python のバージョンを確認する: py -0p

    • 複数のバージョンが存在するときには、* が付いている方がデフォルトに設定されている。

  • 複数のバージョンが存在する場合には py -m バージョン …​ で特定のバージョンを指定して実行が可能。例: 3.11 にインストールされているモジュールを調べるには、py -3.11 -m pip list

  • Windows にて環境変数の一覧を表示する: set

29. 参考文献