Sven Schreiber wrote:
> belinda thom schrieb:
>> Also, since numpy borrows from matlab,

not really -- pylab is specifically designed to be similar to matlab, 
numpy is not -- and the matlib is left over from Numeric, and I don't 
think it was all that well maintained there, either.

> Maybe you know that already, but in scipy there is something like
> scipy.io.read_array and write_array which is very similiar to mpl's
> load/save (IIRC).
> 
> IMHO something like that would be a welcome addition to numpy, but I
> have learned that adding features to numpy is quite controversial...
> (oh, we're on the mpl list right now, ok)

It's an obvious thing to have in a comprehensive package -- maybe not so 
much in numpy. numpy does have the core tools to build that sort of 
thing, however.

> In the end I wrote my own csv read and write functions (see post in
> other thread), because I didn't see why my code should depend on having
> scipy or mpl installed just because of 20 or 30 lines of code.

Again, that is another example of why SciPy should be better modularized 
-- what if it just depended on having scipy.io installed?

> (AFAIK numpy fromfile and tofile are for binary data, not text files.
> Don't know if you want that.)

As mentioned, fromfile and tofile do basic text file support -- but not 
preserving the shape of the array. However, what it does provide is very 
good performance for reading/writing lots of numbers to/from text files 
-- they are great tools for building your own text file 
parser/generator. In fact, your csv reader/writer and much of scipy.io 
could probably benefit from using them (I don't think it does now, as 
the text file support is new to numpy).

I don't know if someone has written it yet, but a load/save pair that 
put a small header with type and shape info in a file, then dumped the 
contents with tofile(...sep=something) could be pretty handy, and fast.

> So if you never use numpy standalone, I'd say go for mpl's load/save.

What about pickle? I'm pretty sure pickle works, doesn't require any 
additional packages, and preserves the format of the array:

import numpy as N
import cPickle
 >>> a = N.arange(24, dtype=N.float)
 >>> a.shape = (2,3,4)
 >>> a
array([[[  0.,   1.,   2.,   3.],
         [  4.,   5.,   6.,   7.],
         [  8.,   9.,  10.,  11.]],

        [[ 12.,  13.,  14.,  15.],
         [ 16.,  17.,  18.,  19.],
         [ 20.,  21.,  22.,  23.]]])

 >>> cPickle.dump(a, file("test.pickle",'wb'))

 >>> b = cPickle.load(file("test.pickle",'rb'))

 >>> b
array([[[  0.,   1.,   2.,   3.],
         [  4.,   5.,   6.,   7.],
         [  8.,   9.,  10.,  11.]],

        [[ 12.,  13.,  14.,  15.],
         [ 16.,  17.,  18.,  19.],
         [ 20.,  21.,  22.,  23.]]])

This is one of those cases where "There should be one obvious way to do 
it" is failing :-(

-Chris


-- 
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

[EMAIL PROTECTED]

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to