少しくらいpython書くの上達した証拠を見せてみよう。(承認欲求)
elmoと野生の読み太(7月3日版)から通称yaselmoを作成するスクリプトである。
短くすっきり書けるようになったでしょ。
where句はC++との整数演算の差を埋めてみる試みで,これでも配布物とちょっとズレてるみたい。
どうしたんだろう?
import numpy as np
import os
def kpp_load(evaldir):
kk = np.fromfile(os.path.join(evaldir, 'KK_synthesized.bin'), dtype='int32').reshape(81, 81, 2)
kkp = np.fromfile(os.path.join(evaldir, 'KKP_synthesized.bin'), dtype='int32').reshape(81, 81, 1548, 2)
kpp = np.fromfile(os.path.join(evaldir, 'KPP_synthesized.bin'), dtype='int16').reshape(81, 1548, 1548, 2)
return kk, kkp, kpp
def kpp_save(evaldir, kk, kkp, kpp):
kk.tofile(os.path.join(evaldir, 'KK_synthesized.bin'))
kpp.tofile(os.path.join(evaldir, 'KPP_synthesized.bin'))
return
kk1, kkp1, kpp1 = kpp_load('elmo')
kk2, kkp2, kpp2 = kpp_load('yy0703')
kk3 = np.where(kk1 + kk2 > 0, (kk1 + kk2)//2, (kk1 + kk2 + 1)//2)
kkp3 = np.where(kkp1 + kkp2 > 0, (kkp1 + kkp2)//2, (kkp1 + kkp2 + 1)//2)
kpp3 = np.where(kpp1 + kpp2 > 0, (kpp1 + kpp2)//2, (kpp1 + kpp2 + 1)//2)
kpp_save('yaselmo', kk3, kkp3, kpp3)