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