感谢您在我上一期提问中的帮助。
我还有一个问题,实际上是非常基本的问题:
使用下面的代码:
import numpy as np
data = np.loadtxt('coord.xyz',dtype={'names':('id', 'type','x','y','z'),
'formats': ('i4','i4','f4','f4','f4')})
f_h = file('sorted1.dat','a')
m = sorted(data, key=lambda data_entry: int(data_entry[0]))
np.savetxt(f_h, m, fmt='%s', delimiter=' ')
f_h.close()
可以正确排序数据 文件'coord.xyz'并将其保存在'sorted1.dat'文件中。 数据就像这样
(1,1,-0.8835089802742004,1.1118659973144531,2.8823349475860596)
(2,2,-0.5829229950904846,1.2082430124282837,1.566588044166565)
(3,3,-0.4945560097694397,0.02859400026500225,0.7631300091743469)
(4,1,-0.7490050196647644,-1.2098779678344727,1.3580570220947266)
(5,4,-0.30354899168014526,0.24225300550460815,-0.8102440237998962)
(6,1,-1.0057859420776367,-1.2784860134124756,2.719391107559204)
(7,5,-1.128898024559021,-0.08812399953603745,3.508042097091675)
(8,1,-1.243878960609436,-0.2172279953956604,5.247914791107178)
(9,1,-1.3797849416732788,0.1959020048379898,-1.197553038597107)
(10,1,-0.25306999683380127,-0.2892940044403076,5.424662113189697)
问题是消除','
中的'('
')'
和'sorted1.dat'
。
有人可以给我一个简单的解决方案吗?
答案 0 :(得分:0)
只是不要指定格式,或为每列指定正确的格式。从:
开始import numpy as np
data = np.loadtxt('coord.xyz', dtype={'names':('id', 'type','x','y','z'),
'formats': ('i4','i4','f4','f4','f4')})
m = data.copy()
m.sort()
with open('sorted1.dat', 'a') as f_h:
np.savetxt(f_h, m, delimiter=' ')
要使整数正确显示并使用简单的十进制表示法浮点数,请使用fmt
这是一系列格式:
np.savetxt(f_h, m, delimiter=' ', fmt=['%i']*2 + ['%f']*3)