使用savetxt编写numpy结构化数组

时间:2016-07-21 08:06:59

标签: python numpy

我遇到了在txt文件中编写结构化数组的问题。 打开输出文件( outfile )后,我使用以下numpy函数:

np.savetxt(*outfile*, ***recarray***, fmt=['%s','%-7.4f','%-7.4f','%-7.4f'])

重新排列 就像[(b'H',0.9425,0.1412,7.1414)...(b'N',1.0037,4.0524,6.8000)] ,第一个元素的类型为numpy.bytes_,其他元素为numpy.float64

在文件中写入此重新排列时出现错误消息:

TypeError: must be str, not bytes

那么,将这个数组放入文件的最简单方法是什么?也许还有其他功能?

1 个答案:

答案 0 :(得分:0)

我假设你使用的是Python 3.0。在这种情况下,您必须在'%s'之前指定字母b,如下所示:b'%s'

在Python3中,默认字符串类型是unicode,因此您使用额外的b来标记字节字符串。

您的脚本应该是:

np.savetxt(*outfile*, ***recarray***, fmt=[b'%s','%-7.4f','%-7.4f','%-7.4f'])

打开.txt文件时,不要忘记写wb

file = open('workfile.txt','wb')