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による転置の一般化.多次元配列の軸を入れ替える.

参考