[Numpy-discussion] Multiple string formatting while writing an array into a file

Gökhan Sever gokhansever at gmail.com
Mon Oct 19 12:32:18 EDT 2009


On Sun, Oct 18, 2009 at 12:03 PM, Gökhan Sever <gokhansever at gmail.com>wrote:

> Hello,
>
> I have a relatively simple question which I couldn't figure out myself yet.
> I have an array that I am writing into a file using the following savetxt
> method.
>
> np.savetxt(fid, output_array, fmt='%12.4f', delimiter='')
>
>
> However, I have made some changes on the code and I require to write after
> 7th element of the array as integer instead of 12.4 formatted float. The
> change below doesn't help me to solve the problem since I get a "ValueError:
> setting an array element with a sequence."
>
> np.savetxt(fid, (output_array[:7], output_array[7:]), fmt=('%12.4f',
> '%12d'), delimiter='')
>
> What would be the right approach to fix this issue?
>
> Thanks.
>
> --
> Gökhan
>

Pre-defining a format like shown below, seemingly help me to fix:

I[48]: format=""

I[49]: for i in range(len(output_array)):
    if i<7:
        format += "%12.4f "
    else:
        format += "%12d "

np.savetxt(fid, output_array, fmt=format)


However couldn't figure out to make it work in-place. From the
savetxt<http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html#numpy.savetxt>documentation:

*fmt* : str or sequence of strs

A single format (%10.5f), a sequence of formats, or a multi-format string,
e.g. ‘Iteration %d – %10.5f’, in which case *delimiter* is ignored

Any ideas how to make this work via in-place iteration? I could add an
example to the function doc once I learn how to do this.

Thanks.


-- 
Gökhan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20091019/745bb641/attachment.html>


More information about the NumPy-Discussion mailing list