[Python] How to use python numpy.savetxt to write strings and float number to an ASCII file?

Discussão em 'Python' iniciado por Stack, Maio 19, 2025.

  1. Stack

    Stack Membro Participativo

    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))


    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_


    The ideal output file would look like:

    NAME_1 0.5
    NAME_2 0.2
    NAME_3 0.3


    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?

    Continue reading...

Compartilhe esta Página