使用numpy.savetxt
将数据保存为连续线,如何保留数组的形状?
示例:
arr = np.array([[1,'some',3,4],
[5,'wo,dy',7,8],
[9,'word',11,12]])
np.savetxt('example.csv',arr,fmt=('%s'),delimiter='\t')
(为什么制表符分隔? - 其中一些真正的文字中有逗号)
example.csv如下所示:
1 some -3.0 4 5 wo,dy -7.0 8 9 word -11.0 12
我怎么能让它看起来像这样:
1 some -3.0 4
5 wo,dy -7.0 8
9 word -11.0 12
(这样我可以把它读成excel或SQL吗?)
答案 0 :(得分:1)
如果arr
确实如图所示,savetxt
应该没有问题:
In [647]: arr = np.array([[1,'some',3,4],
...: [5,'wo,dy',7,8],
...: [9,'word',11,12]])
In [648]:
In [648]: arr
Out[648]:
array([['1', 'some', '3', '4'],
['5', 'wo,dy', '7', '8'],
['9', 'word', '11', '12']],
dtype='<U11')
In [650]: np.savetxt('text.txt', arr, fmt='%13s', delimiter=';')
In [651]: cat text.txt
1; some; 3; 4
5; wo,dy; 7; 8
9; word; 11; 12
'\ t`也能正常工作。
除非您先将数组展平,否则指定newline
参数,否则我看不出如何获得一行。它也不会将'3'改为'-3.0'。
通过混合使用字符串和数字,数组也可以是对象dtype或结构化的。但正如所写,它是一个字符串类型的数组。 '%s'是正确的格式化程序。