bug in array instanciation?

In [20]: dt_knobs = [('pvName',(str,40)),('start','float'),('stop','float'),('mode',(str,10))]
In [21]: r_knobs = np.recarray([],dtype=dt_knobs)
In [22]: r_knobs Out[22]: rec.array(('\xa0\x8c\xc9\x02\x00\x00\x00\x00(\xc8v\x02\x00\x00\x00\x00\x00\xd3\x86\x02\x00\x00\x00\x00\x10\xdeJ\x02\x00\x00\x00\x00\x906\xb9\x02', 1.63e-322, 1.351330465085e-312, '\x90\xc6\xa3\x02\x00\x00\x00\x00P'), dtype=[('pvName', '|S40'), ('start', '<f8'), ('stop', '<f8'), ('mode', '|S10')])
why is the array not empty? -- E

On Fri, Jan 27, 2012 at 21:17, Emmanuel Mayssat emayssat@gmail.com wrote:
In [20]: dt_knobs = [('pvName',(str,40)),('start','float'),('stop','float'),('mode',(str,10))]
In [21]: r_knobs = np.recarray([],dtype=dt_knobs)
In [22]: r_knobs Out[22]: rec.array(('\xa0\x8c\xc9\x02\x00\x00\x00\x00(\xc8v\x02\x00\x00\x00\x00\x00\xd3\x86\x02\x00\x00\x00\x00\x10\xdeJ\x02\x00\x00\x00\x00\x906\xb9\x02', 1.63e-322, 1.351330465085e-312, '\x90\xc6\xa3\x02\x00\x00\x00\x00P'), dtype=[('pvName', '|S40'), ('start', '<f8'), ('stop', '<f8'), ('mode', '|S10')])
why is the array not empty?
The shape [] creates a rank-0 array, which is essentially a scalar.
[~] |1> x = np.array(10)
[~] |2> x array(10)
[~] |3> x.shape ()
If you want an empty array, you need at least one dimension of size 0:
[~] |7> r_knobs = np.recarray([0], dtype=dt_knobs)
[~] |8> r_knobs rec.array([], dtype=[('pvName', '|S40'), ('start', '<f8'), ('stop', '<f8'), ('mode', '|S10')])
participants (2)
-
Emmanuel Mayssat
-
Robert Kern