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