在savetxt中组合python列表

在savetxt中组合python列表,python,numpy,decimalformat,Python,Numpy,Decimalformat,我想使用np.savetxt()并排保存两个python列表 我试过: np.savetxt('./filename.txt',np.hstack([list1,list2]),fmt=['%f','%f']) 但是我得到了错误信息 raise AttributeError('fmt has wrong shape. %s' % str(fmt)) AttributeError: fmt has wrong shape. ['%f', '%f'] 我不知道它是否相关,但列表是十进制格式的

我想使用np.savetxt()并排保存两个python列表

我试过:

np.savetxt('./filename.txt',np.hstack([list1,list2]),fmt=['%f','%f'])
但是我得到了错误信息

raise AttributeError('fmt has wrong shape.  %s' % str(fmt))
AttributeError: fmt has wrong shape.  ['%f', '%f']
我不知道它是否相关,但列表是十进制格式的

请问我做错了什么



编辑:我最初说的是“vstack”,但我的意思是“hstack”。

只需将一个值传递给
fmt
,如下所示:

np.savetxt('./filename.txt',np.vstack([list1,list2]),fmt='%f')
1.000000 2.000000 3.000000
2.000000 3.000000 4.000000
例如:

import decimal, numpy as np
a = np.array([decimal.Decimal("1.0"),
              decimal.Decimal("2.0"),
              decimal.Decimal("3.0")],
             dtype=np.dtype(decimal.Decimal))
b = a + 1
np.savetxt('./filename.txt',np.vstack([a, b]),fmt='%f')
生成的文件如下所示:

np.savetxt('./filename.txt',np.vstack([list1,list2]),fmt='%f')
1.000000 2.000000 3.000000
2.000000 3.000000 4.000000

为什么要尝试将数组传递给
fmt
关键字参数?我尝试按照@user1551817这里的解决方案进行操作,因为传递给format的列表与数据数组的一行大小相同。添加到@Carsten的注释/答案中。如果您希望至少有一列的格式不同于其他列,则只能为
fmt
关键字使用列表。在这种情况下,您必须为每列提供一个带有格式字符串的列表。@user1551817,只需检查
np.hstack([list1,list2])
np.vstack([list1,list2])
的输出,就可以理解这个问题。如果您使用了
np.vstack([list1,list2]).T
,那么您确实会有一个形状
nx2
的二维数组,并且您不会看到此错误。