I have the following code, which basically load some data files that I have in different folders, take an average of every repeat at each Temperature and then plot the results. The code works fine, and it was OK when I had only a couple of set of data. But now I have 9 different set of temperature each with 5 repeat each and the code is becoming too long in my opinion. Is there a way to consolidate it? Thanks!
import numpy as np
import matplotlib.pyplot as plt
steps = np.loadtxt('/home/aperego/data/HexaPaper/nvt/303K/1st/Average_MSD.txt',usecols=[0])
# T = 303 K
msd303_1 = np.loadtxt('/home/aperego/data/HexaPaper/nvt/303K/1st/Average_MSD.txt',usecols=[1])
msd303_2 = np.loadtxt('/home/aperego/data/HexaPaper/nvt/303K/2nd/Average_MSD.txt',usecols=[1])
msd303_3 = np.loadtxt('/home/aperego/data/HexaPaper/nvt/303K/3rd/Average_MSD.txt',usecols=[1])
msd303_4 = np.loadtxt('/home/aperego/data/HexaPaper/nvt/303K/4th/Average_MSD.txt',usecols=[1])
msd303_5 = np.loadtxt('/home/aperego/data/HexaPaper/nvt/303K/5th/Average_MSD.txt',usecols=[1])
msd303 = np.vstack((msd303_1,msd303_2,msd303_3,msd303_4,msd303_5)).T
msd303_mean = np.mean(msd303,axis=1)
msd303_std = np.std(msd303,axis=1)
# T = 313 K
msd313_1 = np.loadtxt('/home/aperego/data/HexaPaper/nvt/313K/1st/Average_MSD.txt',usecols=[1])
msd313_2 = np.loadtxt('/home/aperego/data/HexaPaper/nvt/313K/2nd/Average_MSD.txt',usecols=[1])
msd313_3 = np.loadtxt('/home/aperego/data/HexaPaper/nvt/313K/3rd/Average_MSD.txt',usecols=[1])
msd313_4 = np.loadtxt('/home/aperego/data/HexaPaper/nvt/313K/4th/Average_MSD.txt',usecols=[1])
msd313_5 = np.loadtxt('/home/aperego/data/HexaPaper/nvt/313K/5th/Average_MSD.txt',usecols=[1])
msd313 = np.vstack((msd313_1,msd313_2,msd313_3,msd313_4,msd313_5)).T
msd313_mean = np.mean(msd313,axis=1)
msd313_std = np.std(msd313,axis=1)
plt.yscale("log")
plt.xscale("log")
plt.plot(steps,msd303_mean)
plt.plot(steps,msd313_mean)
np.loadtxt('/home/aperego/data/HexaPaper/nvt/303K/1st/Average_MSD.txt',usecols=[1])
Since you run this a lot, try replacing with
def load(pos):
return np.loadtxt('/home/aperego/data/HexaPaper/nvt/303K/'+pos+'/Average_MSD.txt',usecols=[1])
Then using msd303_1 = load('1st')
. Not a huge improvement but more readable.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.