[Numpy-discussion] How to output array with indexes to a text file?
Brett Olsen
brett.olsen at gmail.com
Fri Aug 26 16:20:20 EDT 2011
On Thu, Aug 25, 2011 at 2:10 PM, Paul Menzel
<paulepanter at users.sourceforge.net> wrote:
> is there an easy way to also save the indexes of an array (columns, rows
> or both) when outputting it to a text file. For saving an array to a
> file I only found `savetxt()` [1] which does not seem to have such an
> option. Adding indexes manually is doable but I would like to avoid
> that.
> Is there a way to accomplish that task without reserving the 0th row or
> column to store the indexes?
>
> I want to process these text files to produce graphs and MetaPost’s [2]
> graph package needs these indexes. (I know about Matplotlib [3], but I
> would like to use MetaPost.)
>
>
> Thanks,
>
> Paul
Why don't you just write a wrapper for numpy.savetxt that adds the
indices? E.g.:
In [1]: import numpy as N
In [2]: a = N.arange(6,12).reshape((2,3))
In [3]: a
Out[3]:
array([[ 6, 7, 8],
[ 9, 10, 11]])
In [4]: def save_with_indices(filename, output):
...: (rows, cols) = output.shape
...: tmp = N.hstack((N.arange(1,rows+1).reshape((rows,1)), output))
...: tmp = N.vstack((N.arange(cols+1).reshape((1,cols+1)), tmp))
...: N.savetxt(filename, tmp, fmt='%8i')
...:
In [5]: N.savetxt('noidx.txt', a, fmt='%8i')
In [6]: save_with_indices('idx.txt', a)
'noidx.txt' looks like:
6 7 8
9 10 11
'idx.txt' looks like:
0 1 2 3
1 6 7 8
2 9 10 11
~Brett
More information about the NumPy-Discussion
mailing list