2011-06-07 25 views
8

我試圖用numpy的savetxt函數來生成一堆文件作爲另一個軟件的輸入。numpy.savetxt 1D數組寫入的問題

我試圖寫形式的數組:

a=np.array([1,2,3,4,...]) 
a.shape=>(1,n) 

與格式 1,2,3,4,文本文件...

當我進入命令

np.savetxt('test.csv',a,fmt='%d',delimiter=',') 

我得到一個看起來像文件:

1 

2 

3 

4 

... 

savetxt作品我會期望一個二維數組,但我不能讓所有的一維數組中的值的成一條線

有什麼建議?

感謝

編輯:

我解決了這個問題。使用np.atleast_2d(a)作爲savetxt的輸入強制savetxt將該數組寫入一行,而不是列

+0

np.atleast_2d(一)可愛的解決方案! – SeF 2017-04-21 09:22:25

回答

9

有多種方法可以解決這個問題。最接近您當前的方法之一是:

np.savetxt('test.csv', a[None], fmt='%d', delimiter=',') 

即添加切片[None]你的陣列,使其二維只有一行。

0

如果你只是想保存一維數組,它實際上是一個很大更快地使用這種方法:

>>> x = numpy.array([0,1,2,3,4,5]) 
>>> ','.join(map(str, x.tolist())) 
'0,1,2,3,4,5'