On Tue, 21 Jul 2009 02:56:28 -0400 Pierre GM <[email protected]> wrote: > > On Jul 21, 2009, at 2:42 AM, Nils Wagner wrote: >> >> Fixed-length fields are quite common e.g. in the area of >> Finite Element pre/postprocessing. >> Therefore It would be nice to have a function like >> line2array in numpy. >> Comments ? > > Er, there's already something like that: > np.lib._iotools.LineSplitter > > Initialize it with either a character or an integer as >delimiter, and > call your instance with a string as input. When you use >an integer as > delimiter, it corresponds to the length of your field. > eg: > >>> s = '-1.000000E+00-1.000000E+00 >1.000000E+00-1.000000E+00' > >>> conv = np.lib._iotools.LineConverter(13) > >>> np.array(conv(s)) > array(['-1.000000E+00', '-1.000000E+00', '1.000000E+00', >'-1.000000E > +00'], > dtype='|S13') > >>> np.array([float(_) for _ in conv(s)]) > array([-1., -1., 1., -1.]) > > Note that LineSplitter is already used in np.genfromtxt: > >>> import StringIO > >>> np.genfromtxt(StringIO.StringIO(s),delimiter=13) > array([-1., -1., 1., -1.]) > Great. I didn't know about that.
Your examples are very useful. IMHO the examples should be added to http://www.scipy.org/Cookbook/InputOutput to attract interest. Nils _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
