2017-07-25 76 views
-4

我正在尋找一個很好的方式來保存多個不同長度的一維陣列numpy的在一個.txt文件(每個陣列爲一列)。我現在把它們都放在一個python列表中。 np.columnstack和np.savetxt不適用於不同大小的數組,並且到目前爲止,我得到它的唯一方法是使用零填充數組,以使它們等長。不同尺寸的numpy的陣列的保存Python列表爲.txt文件

我還發現,使用從熊貓DataFrames,然後將其保存到該食堂在沒有在每一列中的條目行的格式化一個CVS把建議的解決方案。

+0

什麼看起來像你的數據? –

+0

你想要什麼文本文件的格式是什麼?像CSV一樣?什麼東西應該「空出」列中的空格看起來像? –

+0

我想列一個選項卡分離和空的空間應該只跳過這樣的條目不也應該是在列的外露面。例如,如果有一個在第一列中的條目中沒有條目第二列將向左移動。 – maxsch

回答

0

直接文件寫可能是最簡單的

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用於打印):

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 
+0

這有效。謝謝! – maxsch