[Numpy-discussion] another view puzzle

Robert Kern robert.kern at gmail.com
Wed Jun 3 16:58:40 EDT 2009


On Wed, Jun 3, 2009 at 15:23,  <josef.pktd at gmail.com> wrote:
>>>> import numpy as np
>>>> x = np.array([(0.0, 1.0, 2.0, 3.0, 4.0), (1.0, 2.0, 3.0, 4.0, 5.0)],
>     dtype=[('a', '<f4'), ('b', '<f4'), ('c', '<f4'), ('d', '<f4'),
> ('e', '<f4')])
>
>>>> xvm = x.view(np.matrix)
>>>> xvm
> matrix([[(0.0, 1.0, 2.0, 3.0, 4.0), (1.0, 2.0, 3.0, 4.0, 5.0)]],
>       dtype=[('a', '<f4'), ('b', '<f4'), ('c', '<f4'), ('d', '<f4'),
> ('e', '<f4')])
>>>> xvm*2
> matrix([[(0.0, 1.0, 2.0, 3.0, 4.0, 0.0, 1.0, 2.0, 3.0, 4.0),
>         (1.0, 2.0, 3.0, 4.0, 5.0, 1.0, 2.0, 3.0, 4.0, 5.0)]], dtype=object)
>>>>
>
> What am I doing wrong?

You simply can't do numerical operations on structured arrays. matrix
shows this behavior because it replaces * with dot(), and dot(x, 2)
upcasts the array to an object array, which happens to represent
records as tuples.

This has nothing to do with views.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco



More information about the NumPy-Discussion mailing list