我是 python 新手,尝试用列表的数据填充数组时遇到问题
例如,我的列表如下所示:
Item TIMESTEP
0
STEPS
Id mol Sp x y z
1 1 0.25 0.63 0.58
2 1 0.85 0.96 0.10
3 2 0.36 0.45 0.89
4 3 0.45 0.16 0.22
5 3 0.85 0.65 0.77
Item TIMESTEP
10
STEPS
Id mol Sp x y z
1 1 0.85 0.33 0.68
2 1 0.65 0.26 0.20
3 2 0.56 0.35 0.79
4 3 0.75 0.36 0.12
5 3 0.65 0.75 0.87
...并像 1000 一样继续我想做的是有一个数组,其中只包含 X、Z、Y 的值,但只有第一个和下一个,因为我需要使用只是获取相对值的坐标,因此将每个时间步与前一个时间步进行比较。直到现在我有这个,但数组没有给出任何结果......你能告诉我什么是错的或如何纠正它吗?
numofmol = 600
B = np.zeros((numofmol,6)) #array filled with ceros with 6 columns and 2688 lines
A = list() # empty list A
c=0
with open('./square/output/Sq.lammpstrj') as inf:
for line in inf:
parts = line.split() # split line into parts
#print parts
if len(parts) > 1 :
if parts[1] == 'TIMESTEP' :
c +=1
#print c
if len(parts) == 5 and numofmol >= parts[0] > 0 :
if c % 2 == 0:
B[parts[0],0] = parts[2]
B[parts[0],1] = parts[3]
B[parts[0],2] = parts[4]
else:
B[parts[0],3] = parts[2]
B[parts[0],4] = parts[3]
B[parts[0],5] = parts[4]
print B
先感谢您