Python Tips
Key word
- Python
はじめに
PythonについてのTipsを備忘録として書いていきます. 随時更新します.
まとめ
式展開
i = 1
f'i = {i}'
# => i = 1
出力フォーマットも指定できる
init_mon = 2
f'2017{init_mon:02d}'
# => 201702
dict
python 3.9以降,mergeできるようになった.
a = {'a': 'A'}
b = {'b': 'B'}
a | b
=> {'a': 'A', 'b': 'B'}
enumerate
イテレート時にidxとvalueを両方使いたい時,enumarate
を使う.
for idx, value in enumerate(array):
print(f'{idx}: {value}')
animation
animationをgifで保存する.(Imagemagic不要)
# 例
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib.animation import PillowWriter # 明示的には使わない
...
# fig, animateを定義
...
anim = animation.FuncAnimation(fig, animate, frames=100)
anim.save('data/img/hmc_animation.gif', writer='pillow')
numpy
array結合
a = np.zeros((10, 100, 1000))
b = a.copy()
c = np.vstack([a,b])
c.shape
# => (20, 100, 1000)
d = np.hstack([a,b])
d.shape
# => (10, 200, 1000)
e = np.block([a,b])
e.shape
# => (10, 100, 2000)
argsort
best3を選ぶときなどに使う.昇順で返される.
target_arr = np.array([2, 7, 4, 9, 1, 5])
best_3idx = target_arr.argsort()[::-1][:3]
print(best_3idx)
# => [3, 1, 5]
reshapeの注意
目的に合わせて必要があれば転置と組み合わせる.
data = np.arange(12)
print(data)
reshaped_data1 = data.reshape(4, 3)
print(reshaped_data1)
reshaped_data2 = data.reshape(3, 4).T
print(reshaped_data2)
結果
[ 0 1 2 3 4 5 6 7 8 9 10 11]
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
[[ 0 4 8]
[ 1 5 9]
[ 2 6 10]
[ 3 7 11]]
transpose
.T
による転置の一般化.多次元配列の軸を入れ替える.