numpy将不同类型的数组保存到文本文件
说我有以下numpy结构化数组:
>>> a = numpy.array((1, 2.0, 'buckle_my_shoe'),dtype=('i4,f8,a14'))
array((1, 2.0, 'buckle_my_shoe'),
dtype=[('f0', '<i4'), ('f1', '<f8'), ('f2', 'S14')])
我想 将其保存到文本文件中的单个空格或制表符分隔的行中
。如果数组都是相同的类型,我可以使用numpy.savetxt('myfile.dat,myarray,newline="
")
。但是,这似乎不喜欢混合数据类型/结构化数组,例如:
file('myfile.dat', 'a')
numpy.savetxt('myfile.dat',a,newline=" ")
给出此错误:
IndexError: tuple index out of range
任何人都可以推荐这样做的方法吗?
-
编辑 :无论出于什么原因,我似乎都无法单独回答这个问题,因此这是一个更清洁的版本,它不需要使用
csv
模块。记录下来,@
askewchan的答案还是更好!a = numpy.array([(1, 2.0, 'buckle_my_shoe'), (3,4.0,'lock_the_door')],dtype=('i4,f8,a14')) with open('test.txt','w') as f: f.write(' '.join([str(item) for sublist in a for item in sublist])) print open('test.txt','r').read()
输出:
1 2.0 buckle_my_shoe 3 4.0 lock_the_door