将不同大小的numpy数组的python列表保存到.txt文件

将不同大小的numpy数组的python列表保存到.txt文件,python,list,pandas,numpy,Python,List,Pandas,Numpy,我正在寻找一种很好的方法将不同长度的多个1D numpy数组保存在一个.txt文件中(每个数组都是一列)。目前,我已经将它们全部放在python列表中。 np.columnstack和np.savetxt不适用于不同大小的数组,到目前为止,我唯一的方法是用零填充数组,使它们的长度相等 我还发现了一个建议的解决方案,它使用Pandas的数据帧,然后将其保存到cvs put中,这会弄乱每列中没有条目的行中的格式。直接文件写入可能是最简单的 In [233]: alist=[[1,2,3,4],[.2

我正在寻找一种很好的方法将不同长度的多个1D numpy数组保存在一个.txt文件中(每个数组都是一列)。目前,我已经将它们全部放在python列表中。 np.columnstack和np.savetxt不适用于不同大小的数组,到目前为止,我唯一的方法是用零填充数组,使它们的长度相等


我还发现了一个建议的解决方案,它使用Pandas的数据帧,然后将其保存到cvs put中,这会弄乱每列中没有条目的行中的格式。

直接文件写入可能是最简单的

In [233]: alist=[[1,2,3,4],[.2,.4,1.2],['a','b','c','d','e']]
In [234]: import itertools
In [235]: list(itertools.zip_longest(*alist))
Out[235]: 
[(1, 0.2, 'a'),
 (2, 0.4, 'b'),
 (3, 1.2, 'c'),
 (4, None, 'd'),
 (None, None, 'e')]
In [236]: 
In [236]: list(itertools.zip_longest(*alist,fillvalue=''))
Out[236]: [(1, 0.2, 'a'), (2, 0.4, 'b'), (3, 1.2, 'c'), (4, '', 'd'), ('', '', 'e')]
现在只需写格式化的行(将打印替换为
file.write
):


您的数据看起来像什么?您希望文本文件的格式是什么?像CSV?列中的“空”空格应该是什么样子的?我希望列之间用一个选项卡隔开,空空格应该被跳过,这样条目就不会显示在它们应该位于的列之外。例如,如果第一列中没有条目,则第二列中的条目将向左移动。数据是浮动的。给出一个示例,包括所需的显示。并使用
代替制表符,以便显示清晰。
In [238]: for line in itertools.zip_longest(*alist,fillvalue=''):
     ...:     print('%5s, %5s, %5s'%tuple(line))
     ...:     
    1,   0.2,     a
    2,   0.4,     b
    3,   1.2,     c
    4,      ,     d
     ,      ,     e