📝
Python便利メモ
Python全般
Pythonで並列処理
# func: function, 並列化したい処理
# args_list: list, 入力とするもののリスト
from tqdm.notebook import tqdm
from multiprocessing import Pool, cpu_count
with Pool(cpu_count()) as p:
result_list = list(tqdm(p.imap(func, args_list), total=len(args_list)))
pythonでfull pathからfilenameを取得するための関数
import os
def get_filename_from_full_path(full_path):
# パスを分割して、ファイル名部分を取得
filename = os.path.basename(full_path)
return filename
# 使用例
full_path = '/path/to/your/file.txt'
filename = get_filename_from_full_path(full_path)
print(f'ファイル名: {filename}')
拡張子を除く
import os
os.path.splitext(filepath)[0]
# os.path.splitext(os.path.basename(filepath))[0]
ゼロ埋めと小数点4桁まで表示
print(f'Epoch {epoch:03d}')
print(f'Validation score: {val_score:.4f}')
logger
def init_logger(log_file='train.log'):
from logging import getLogger, INFO, FileHandler, Formatter, StreamHandler
logger = getLogger(__name__)
logger.setLevel(INFO)
handler1 = StreamHandler()
handler1.setFormatter(Formatter("%(message)s"))
handler2 = FileHandler(filename=log_file)
handler2.setFormatter(Formatter("%(message)s"))
logger.addHandler(handler1)
logger.addHandler(handler2)
return logger
logger = init_logger()
logger.info('Start Logging...')
pandas
表示行・列の設定
pd.set_option('display.max_rows', 100)
pd.set_option('display.max_columns', 100)
複数桁の出力
pd.options.display.float_format = '{:.3f}'.format
複数のシートに出力
with pd.ExcelWriter("output.xlsx") as writer:
df1.to_excel(writer, sheet_name="sheet1")
df2.to_excel(writer, sheet_name="sheet2")
Matplotlib
横長/縦長の設定, 複数図の設定
図の縦長/横長の設定: plt.figure(figsize=(width, height))
複数図の設定: plt.subplot(nrows, ncols, index)
w = 8
h = 6
plt.figure(figsize=(w, h))
nr = 2
nc = 1
idx = 1
plt.subplot(nr, nc, index)
plt.scatter([0, 1], [1, 2])
idx = 2
plt.subplot(nr, nc, index)
plt.scatter([0, 1], [-1, -2])
Discussion