<font size="4">Dear Numpy list:<br><br>We've been using the numpy.rec classes to make record array objects. <br><br>We've noticed that in more recent versions of numpy, record-array like objects can be made directly with the numpy.ndarray class, by passing a complex data type. <br>
<br>However, it looks like the numpy.rec class is still supported.<br><br>So, we have a couple of questions:<br><br>1) Which is the preferred way to make a record array, numpy.rec, or the numpy.ndarray with complex data type?   A somewhat detailed explanation of the comparative properties would be great.  (We know it's buried somewhere in the document ... sorry for being lazy!) <br>
<br>2) The individual "records" in numpy.rec array have the "numpy.record" type.   The individual records in the numpy.array approach have "numpy.void" type.   Can you tell us a little about how these differ, and what the advantages of one vs the other is? <br>
<br>3) We've heard talk about "complex data types" in numpy in general.  Is there some good place we can read about this more extensively? <br><br><br>Also: one thing we use and like about the numpy.rec constructors is that they can take a "names" argument, </font><font size="4">and the constructor function does some inferring about what the formats you want are, </font><font size="4">e.g.:<br>
<br>       img = numpy.rec.fromrecords([(0,1,'a'),(2,0,'b')], names = ['A','B','C'])<br><br>produces:<br><br>      rec.array([(0, 1, 'a'), (2, 0, 'b')], dtype=[('A', '<i4'), ('B', '<i4'), ('C', '|S1')])<br>
<br>This is very convenient.<br><br>My immediate guess for the equivalent thing with the numpy.ndarray approach:<br><br>      img = numpy.array([(0,</font><font size="4">1,'a'),(2,0,'b')], names = ['A','B','C'])<br>
<br>does not work.   Is there some syntax for doing this? <br><br>Thanks,<br><br></font><font size="4">Dan       <br></font><br>