On May 2, 2012, at 3:23 PM, <numpy-discussion-requ...@scipy.org> wrote:
>> A) ?How do I most efficiently construct a record array from a single array? >> I want to do the following, but it segfaults on me when i try to print b. >> >> vtype = [("x", numpy.ndarray)] >> a = numpy.arange(0, 16).reshape(4,4) >> b = numpy.recarray((4), dtype=vtype, buf=a) > > I prefer not to use record arrays, and stick to structured arrays: > > In [11]: vtype = np.dtype([('x', (np.float, 4))]) > > In [12]: a = np.arange(16.).reshape((4,4)) > > In [13]: a.view(vtype) > Out[13]: > array([[([0.0, 1.0, 2.0, 3.0],)], > [([4.0, 5.0, 6.0, 7.0],)], > [([8.0, 9.0, 10.0, 11.0],)], > [([12.0, 13.0, 14.0, 15.0],)]], > dtype=[('x', '<f8', (4,))]) Using structured arrays is making my code complex when I try to call the vectorized function. If I stick to the original record arrays, what's the best way of initializing b from a without doing an row-by-row copy? Catherine _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion