[Numpy-discussion] Tuples vs. lists when defining recarrays with array()
David Warde-Farley
dwf at cs.toronto.edu
Sun Jun 7 19:31:19 EDT 2009
A question was raised on the #scipy IRC earlier today, about the
behaviour of array() with structured dtypes. After some educated
guessing I figured out that for record arrays, tuples (rather than
lists) must be used to indicate atomic elements. What I wondered is
whether this behaviour is documented anywhere, and does it belong in
the array() docstring, for example? The docstring currently reads "...
or any (nested) sequence."
In [57]: desc0
Out[57]: dtype([('id', '|O4'), ('val', '|O4'), ('date', '|O4')])
In [58]: values0
Out[58]: [9L, 1L, datetime.date(2009, 6, 7)]
In [59]: arr = array(values0, dtype=desc0)
---------------------------------------------------------------------------
ValueError Traceback (most recent call
last)
/Users/dwf/<ipython console> in <module>()
ValueError: tried to set void-array with object members using buffer.
In [60]: arr = array(tuple(values0), dtype=desc0)
In [61]: arr
Out[61]:
array((9L, 1L, datetime.date(2009, 6, 7)),
dtype=[('id', '|O4'), ('val', '|O4'), ('date', '|O4')])
- David
More information about the NumPy-Discussion
mailing list