[SciPy-User] Populating a recarray from 0 size

josef.pktd@gmai... josef.pktd@gmai...
Sat Aug 21 20:29:23 CDT 2010


On Sat, Aug 21, 2010 at 9:18 PM, Sergi Pons Freixes <spons@utm.csic.es> wrote:
> Hi everybody,
>
> I'm interested in populating a recarray a row at a time. I thought in using:
>
> -------
> # Creation of empty recarray
> names = ["cruise", "SEQ", "param", "r2", "stderr", "slope", "intercept"
> formats = ["i4", "i4", "S10", "f4", "f4", "f4", "f4"]
> statsc = scipy.empty(0, dtype={"names":names, "formats":formats})
>
> # Adding row and setting values
> statsc = scipy.resize(statsc, statsc.size + 1)
> statsc["cruise"][-1] = cr
> statsc["SEQ"][-1] = ca
> statsc["param"][-1] = yvar
> ...
> -------
>
> But scipy.resize complains with:
> statsc = scipy.resize(statsc, statsc.size + 1)
>  File "/usr/lib/python2.6/site-packages/numpy/core/fromnumeric.py",
> line 833, in resize
>    if not Na: return mu.zeros(new_shape, a.dtype.char)
> ValueError: Empty data-type
>
> So, is scipy not happy because statsc.size is 0 on the first resize?
> In this case, how could I overcome this limitation?

BTW: These are numpy functions.

I don't know the answer, but it would be more efficient to correctly
size the empty array, if you know the size, or to build up the array
first as a list of tuples before converting to an array.

Josef

>
> Regards,
> Sergi
>
> --
> Sergi Pons Freixes
> Ph.D. Student
> Marine Technology Unit
> Centre Mediterrani d'Investigacions Marines i Ambientals (CMIMA-CSIC)
> Pg. Marítim Barceloneta, 37-49
> E-08003 Barcelona (Spain)
> Ph.  +34 93 230 95 00 (ext. 1510)
> Fax. +34 93 230 95 55
> spons@utm.csic.es
> http://www.utm.csic.es
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>


More information about the SciPy-User mailing list