将 numpy 数组保存到没有括号和空格的文件中

saving numpy array to a file without brackets and white spaces

我一直在尝试将 numpy 数组保存到一个文件中,每行开头没有括号和空格。不幸的是,最后一个不起作用。 数组:

[[ 6.         -2.86751284 -0.35808319  1.79360812]
 [ 6.         -1.59351284 -0.02808319 -0.47039188]
 [ 6.          0.51848716  0.21791681  0.17060812]
 [ 6.         -1.63251284 -0.12208319  0.90460812]
 [ 6.         -0.26051284  0.03991681  1.33660812]
 [ 6.          1.87948716  0.43391681  0.21960812]
 [ 6.          2.52048716  0.45191681  1.44760812]
 [ 6.          0.40448716  0.04591681  2.58360812]
 [ 6.          1.81248716  0.30391681  2.62260812]]

代码:

f = open('result.txt','a')
f.write(str(geometry.shape[0]))
f.write(re.sub('[\[\]]', '', np.array_str(geometry))).lstrip() 
f.write('\n')
f.close()

我该如何解决?

如需更多控制您的文本应如何使用 np.savetxt 并根据需要添加其他参数:

arr = np.ones((3, 3))
with open("test.txt" , 'wb') as f:
    np.savetxt(f, arr, delimiter=' ', newline='\n', header='', footer='', comments='# ')

这个选项怎么样:

a = np.array([[ 6, -2.86751284, -0.35808319,  1.79360812],
[ 6., -1.59351284, -0.02808319, -0.47039188],
[ 6., 0.51848716,  0.21791681,  0.17060812],
[ 6., 1.63251284, -0.12208319,  0.90460812],
[ 6., -0.26051284,  0.03991681,  1.33660812],
[ 6., 1.87948716,  0.43391681,  0.21960812],
[ 6., 2.52048716,  0.45191681,  1.44760812],
[ 6., 0.40448716,  0.04591681,  2.58360812],
[ 6., 1.81248716,  0.30391681,  2.62260812]], np.float32)

np.savetxt('outfile.txt', a)

没有不必要的白色 space 也没有括号,但格式在一行中。