如何使用python numpy.savetxt将字符串和浮点数写入ASCII文件? [英] How to use python numpy.savetxt to write strings and float number to an ASCII file?

查看:399
本文介绍了如何使用python numpy.savetxt将字符串和浮点数写入ASCII文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一组包含字符串和浮点数的列表,例如:

I have a set of lists that contain both strings and float numbers, such as:

import numpy as num

NAMES  = num.array(['NAME_1', 'NAME_2', 'NAME_3'])
FLOATS = num.array([ 0.5    , 0.2     , 0.3     ])

DAT =  num.column_stack((NAMES, FLOATS))

我想将这两个列表堆叠在一起,并将它们以列的形式写入文本文件;因此,我想使用 numpy.savetxt (如果可能)来做到这一点.

I want to stack these two lists together and write them to a text file in the form of columns; therefore, I want to use numpy.savetxt (if possible) to do this.

num.savetxt('test.txt', DAT, delimiter=" ") 

执行此操作时,出现以下错误:

When I do this, I get the following error:

>>> num.savetxt('test.txt', DAT, delimiter=" ") 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/numpy-1.8.0.dev_9597b1f_20120920-py2.7-macosx-10.8-x86_64.egg/numpy/lib/npyio.py", line 1047, in savetxt
    fh.write(asbytes(format % tuple(row) + newline))
TypeError: float argument required, not numpy.string_

理想的输出文件如下:

NAME_1    0.5
NAME_2    0.2
NAME_3    0.3

如何将字符串和浮点数都写到文本文件中,可能避免使用csv(如果其他人可以读取,我希望使之成为可能)?有没有另一种方法来代替 numpy.savetxt ?

How can I write both strings and float numbers to a text file, possibly avoiding using csv ( I want to make if readable for other people )? Is there another way of doing this instead of using numpy.savetxt?

推荐答案

您必须在savetxt中指定数据的格式(fmt),在这种情况下为字符串(%s):

You have to specify the format (fmt) of you data in savetxt, in this case as a string (%s):

num.savetxt('test.txt', DAT, delimiter=" ", fmt="%s") 

默认格式是浮点数,这就是它期望使用浮点数而不是字符串并解释错误消息的原因.

The default format is a float, that is the reason it was expecting a float instead of a string and explains the error message.

这篇关于如何使用python numpy.savetxt将字符串和浮点数写入ASCII文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆