在科学计算中,我们常常需要把numpy数组得到结果保存到磁盘上,然后在用画图软件画图。因此文件的IO是必不可少的。
这里一个技巧是利用numpy自带的save和load方法,就可以把numpy数组写入到二进制文件中,之后直接调用load进行处理,不用自己写循环输出成txt在处理。
# 计算chi0
time_start=time.time()
print("Start Calculate chi0")
chi0 = calculate_chi0(omegas,Gk_up_r,Gk_up_a,Gk_down_r,Gk_down_a,T,mu,N)
time_end = time.time()
print("Calculate chi0 cost :{:.2f}s".format(time_end-time_start))
np.save('chi0.npy',chi0)
np.save('chi0_00static.npy',chi0[0,:,0,0])
np.save('chi0_00.npy',chi0[:,:,0,0])
# RPA
time_start=time.time()
print("Start Calculate chi_RPA")
chi_RPA = chi_RPA(chi0,U)
time_end = time.time()
print("Calculate chi_RPA cost :{:.2f}s".format(time_end-time_start))
np.save('chi_RPA.npy',chi_RPA)
np.save('chi_RPA_static.npy',chi_RPA[0,:,0,0])
np.save('chi_RPA.npy',chi_RPA[:,:,0,0])