numpy将不同类型的数组保存到文本文件

发布于 2021-01-29 17:57:29

说我有以下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

任何人都可以推荐这样做的方法吗?

关注者
0
被浏览
78
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    编辑 :无论出于什么原因,我似乎都无法单独回答这个问题,因此这是一个更清洁的版本,它不需要使用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
    


推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看