Python Flashcards
配列の全要素にアクセスして、関数を適応させる
list(map(関数(lambda式), iterable)
オブジェクトのメンバー引数を取得する関数
getattr(object, name, default)
オブジェクトの属性一覧を取得する
dir(オブジェクト)
dir(self)もok
pandasの列名をリストで入れる方法
DataFrame.columns = [’..’, ‘…’]
正規表現でコンパイル
一致するものを取得する方法
pattern = re.compile()
match_obj = pattern.match()
→先頭からマッチ
match_obj = pattern.search()
→文全体で初めてのマッチ
match_obj.group()
→0のときは全体、1~で各グループ
Pandasのdfから、変数を使用して条件で抽出する方法
val = 25
print(df.query(‘age < @val’))
# name age state point
# 0 Alice 24 NY 64
# 2 Charlie 18 CA 70
# 4 Ellen 24 CA 88
PandasのDataframeから複数行を抽出する
Dataframe[‘…’, ‘…‘…]
PandasのDataframeから値を抽出
Dataframe.values
→ndarray
2次元ndarrayからリストを作成
ndarray.tolist()
pandasの列から抽出する方法
Dataframe[‘…’]
→Series
Seriesからユニークな値を取得する
Series.unique()
cmapの作り方
plt.get_cmap(‘jet’)
cv2.imread()で読み込んだときの、要素の位置関係
0:height
1:width
2:BRG
cv2.resize()の要素の入れ方
cv2.imread(image, (width, height)
コンテキストウィンドウでファイルに1追記する方法。
with open(path, ‘a’) as f:
f.write()
マルチプロセスでの実装
with ProcessPoolExecutor() as e:
futures = [e.submit(fn, arg1, arg2, …) for i in [(arg1, arg2, …), (…]
for future in as_completed(futures):
print(future.result())
sqlalchemyでid, email, password, daily_usage, last_reset_dateの列を参照して、query、daily_usageを取得する。その後1足して更新。
class User(Base):
__tablename__ = “users”
id = Column(Integer, primary_key=True, index=True)
email = Column(String(100), unique=True, index=True, nullable=False)
password = Column(String(100), nullable=False)
daily_usage = Column(Integer, default=0)
last_reset_date = Column(DateTime, nullable=True)
user = db.query(database.User).filter(database.User.email == email).first()
user.daily_usage += 1 db.commit()
yamlファイルの読み込み方法
with open(‘test.yaml’, ‘rb’) as f:
yml = yaml.safe_load(f)
tensorからuniqueな値を取得
パラメータの重みの取得
self.parametare_name.weight→tensor
Pathオブジェクトの、相対パスを取得する方法
PathObject.relative_to(PathObject)
Pathオブジェクトを/で区切られる各要素に分ける方法は?
PathObject.parts
csvを列名ありで読み込む方法は?
pd.read_csv(path, index_col=0)
datetimeを文字列から作る方法
datetime.strptime(20230623, ‘%Y%m%d”)
datetimeに1日足す法。
datetime obj + datetime.time(days=1)
datetimeを文字列として出力する方法
datetime.strftime(‘%Y%m%d’)
re.compileで大文字、小文字関係なくする方法は?
re.compile([b-e]\d+, re.IGNORECASE)
Pathオブジェクトのファイル名を取得する方法
Pathオブジェクトを作成
file_path = Path(‘/path/to/your/file.txt’)
ファイル名を取得
file_name = file_path.name
データフレームを1行ごと繰り返し
for i, data in Dataframe.iterrows:
→int, Series
マルチスレッドのimport
from concurrent.futures import ProcessPoolExecutor
コンテナオブジェクトとは
別のオブジェクトを要素として持つオブジェクト
listやdictなど
グローバルスコープのコンテナオブジェクトの要素への代入
x =[0, 1]
def f():
x[0] = 2
»> x
[0, 1]
»>f()
»>x
[2, 1]
グローバルスコープの内容を取得する方法
globals()
→dict
Pytorchのモデルのパラメータを辞書で取得する方法
model.state_dict()
“5.6, 5.8”の文字列をfloatのリストにする方法。
list(map(float, args.milestone_epochs.split(“,”)))
TensorからPIL画像に変換、保存する
import torch
from PIL import Image
import numpy as np
480x640のランダムなインスタンスセグメンテーションのTensor (3チャンネルのRGB画像)
tensor_data = torch.randint(0, 256, (3, 480, 640), dtype=torch.uint8)
Tensorの次元を (height, width, channels) に変換
numpy_data = tensor_data.permute(1, 2, 0).numpy()
TensorをPIL画像に変換
image = Image.fromarray(numpy_data)
画像を保存
image.save(“output_image.png”)
2次元のnumpy配列を、あるリストに含まれている数字の場所だけをそのまま、それ以外は0にしたカラー画像を作る方法は?
import numpy as np
import matplotlib.pyplot as plt
例: 元の2次元配列
array = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
])
残したい数字のリスト
keep_values = [3, 7, 11]
リストに含まれている数字だけをそのまま残し、それ以外を0にする
masked_array = np.where(np.isin(array, keep_values), array, 0)
カラー画像に変換 (ここでは3チャンネルのRGB画像にする)
color_image = np.stack([masked_array]*3, axis=-1)
画像を表示する
plt.imshow(color_image, cmap=’jet’)
plt.title(“Masked Color Image”)
plt.show()
np.isin(array, keep_values)は、配列の各要素がリスト keep_values に含まれているかを確認し、True or False のマスクを作成します。
np.where を使って、リストに含まれる要素をそのまま、含まれない要素を 0 に置き換えます。
np.stack によって、配列を3チャンネル(RGB)に拡張します。これにより、カラー画像として表示可能になります。
Tensorをnumpyにする方法は?
CPUに移動してからNumPy配列に変換
numpy_array = tensor.cpu().numpy()