numpy.savetxt 写入一维数组的问题
我正在尝试使用numpy的savetxt
函数来生成一些文件,以便作为其他软件的输入。
我想把一个这样的数组写入文本文件:
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把数组写成一行,而不是一列。
2 个回答
1
如果你只想保存一个一维数组,其实用这种方法会快很多:
>>> x = numpy.array([0,1,2,3,4,5])
>>> ','.join(map(str, x.tolist()))
'0,1,2,3,4,5'
13
有几种方法可以解决这个问题。最接近你现在做法的是:
np.savetxt('test.csv', a[None], fmt='%d', delimiter=',')
也就是说,在你的数组后面加上切片 [None]
,这样就能把它变成一个只有一行的二维数组。