This goes into the category of "feature". Structured arrays use tuples to
indicate a record. So, (only) when using structured arrays as a dtype, there
is a difference between lists and tuples. In this case, array sees the tuple
and expects it to have 2 elements to match the number of fields in 2.
Best,
-Travis
On Aug 22, 2011, at 2:36 AM, Konrad Hinsen wrote:
> Hi everyone,
>
> I just stumbled on a behavior in NumPy for which I can't find an
> explanation in the documentation. I wonder whether this is a bug or an
> undocumented (or badly documented) feature:
>
> --------------------------------------------------------------------------------------
> import numpy
>
> t = numpy.dtype([("rotation", numpy.float64, (3, 3)),
> ("translation", numpy.float64, (3,))])
>
> # works
> a1 = numpy.array([], dtype=t)
>
> # doesn't work
> a2 = numpy.array((), dtype=t)
> # -> ValueError: size of tuple must match number of fields.
> --------------------------------------------------------------------------------------
>
> According to my understanding of how numpy.array should work, it
> shouldn't make a difference if the first argument is a list or a
> tuple, but in this case there is a difference.
>
> Konrad.
>
> _______________________________________________
> NumPy-Discussion mailing list
> [email protected]
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
---
Travis Oliphant
Enthought, Inc.
[email protected]
1-512-536-1057
http://www.enthought.com
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion