I just ran into this and am kind of baffled. There are other ways I
could do this so it's not a huge deal, but I'm wondering if this is a
bug. I want a (named) structured array with an object dtype. Is this
possible?
For example
In [68]: import numpy as np
In [69]: A = np.array((np.arange(10)[:,None], 3, 4.5), dtype=[("prob", float, (1
0,1)),
....: ("m1", float),("m2", float)])
In [70]: B = np.array((np.arange(10,20)[:,None], 3, 4.5), dtype=[("prob", float,
(10,1)),
....: ("m1", float),("m2", float)])
This works fine.
In [71]: C = np.empty(2, dtype=object)
In [72]: C[0] = A
In [73]: C[1] = B
In [74]: np.all(C[0] == A)
Out[74]: True
In [75]: np.all(C[1] == B)
Out[75]: True
This doesn't. Looks like it takes a bad view on the array part (?)
In [76]: D = np.empty(2, dtype=[("n1",object),("n2", object)])
In [77]: D["n1"] = A
In [78]: D["n2"] = B
In [79]: np.all(D["n1"] == A)
Out[79]: False
In [80]: np.all(D["n2"] == B)
Out[80]: False
Skipper