On 9/26/07, Robert Kern <robert.kern@gmail.com> wrote:
Here is the straightforward way:
In [15]: import numpy as np
In [16]: dt = np.dtype([('foo', int), ('bar', float)])
In [17]: r = np.zeros((3,3), dtype=dt)
Here is a (hopefully) simple question. If I create an array like this, how can I efficiently convert it to a record array which lets me do r.attr in addition to r['attr']. I'm pretty addicted to the former syntax. In [114]: dt = np.dtype([('foo', int), ('bar', float)]) In [115]: r = np.zeros((3,3), dtype=dt) In [116]: r.dtype Out[116]: dtype([('foo', '<i4'), ('bar', '<f8')]) In [117]: r['foo'] Out[117]: array([[0, 0, 0], [0, 0, 0], [0, 0, 0]]) In [118]: r.foo ------------------------------------------------------------ Traceback (most recent call last): File "<ipython console>", line 1, in ? AttributeError: 'numpy.ndarray' object has no attribute 'foo' Thanks, JDH