From: Sebastian H. <ha...@ms...> - 2004-06-29 00:00:51
|
Hi, I have two record arrays. I was trying to assign one item from one recarray to the other: >>> omx.zext[0] = main.ring4ext[0,0] Traceback (most recent call last): File "<input>", line 1, in ? File "X:/PrWin\numarray\records.py", line 744, in _setitem self.field(self._names[i])[row] = value.field(self._names[i]) File "C:\Python22\Lib\site-packages\numarray\numarraycore.py", line 619, in __tonumtype__ ValueError: Can't use non-rank-0 array as a scalar. >>> `omx.zext[0]` '<numarray.records.Record instance at 0x042AFC78>' >>> `main.ring4ext[0,0]` '<numarray.records.Record instance at 0x042AFC78>' >>> q = omx.zext[0] >>> w = main.ring4ext[0,0] >>> q (2097152107, -595656700, 91141, 1.0634608642000868e+037, -1.14841804241843e +018, 1.2771574333702815e-040) >>> w (array([428]), array([75]), array([124]), array([ 1.08846451e+09], type=Float32), array([ 99.25], type=Float32), array([ 1996.82995605], type=Float32)) >>> omx.zext._formats ['1Int32', '1Int32', '1Int32', '1Float32', '1Float32', '1Float32'] >>> main.ring4ext._formats ['1Int32', '1Int32', '1Int32', '1Float32', '1Float32', '1Float32'] I can't track down why one (q) contains scalars and the other (w) constains arrays (is array([428]) a 'rank-0 array'? ) ! This is how I generate them: main.ring4ext = rec.RecArray(main._extHdrRingBuffer, "i4,i4,i4,f4,f4,f4", shape=(ts,nc), names=("num","min","max","time","mean","darkVal"), aligned=1) omx.zext = rec.array(formats="i4,i4,i4,f4,f4,f4", names=("num","min","max","time","mean","darkVal"),shape=tuple(shapeZ),aligned=1 ) [[BTW: (shapeZ is a list, if I say: ...,shape=shapeZ I get NameError, "Illegal shape %s" % `shape` from "records.py" in line 462 -- usually type(shape) == types.ListType should be OK, right ?) ]] Any ideas? Thanks, Sebastian Haase |
From: Sebastian H. <ha...@ms...> - 2004-06-29 21:52:26
|
OK, I'm still trying to get a handle on these record arrays - because I think they are pretty cool, if I could get them to work... Following the code from yesterday (see that posting below) I discovered this: main.ring4ext[0][0] is not the same as main.ring4ext[0,0] is this intended ?? >>> main.ring4ext[0][0] (2308, 76, 272, 1088481152.0, 104.18000030517578, 1994.949951171875) >>> main.ring4ext[0,0] (array([2308, 2309]), array([76, 76]), array([272, 269]), array([ 1.08848115e +09, 1.08848115e+09], type=Float32), array([ 104.18000031, 104.45999908], type=Float32), array([ 1994.94995117, 1994.95996094], type=Float32)) >>> main.ring4ext.shape # yesterday I had this different !!! (20,1) (20, 2) Any comments are appreciated, Thanks Sebastian On Monday 28 June 2004 05:00 pm, Sebastian Haase wrote: > Hi, > I have two record arrays. I was trying to assign one item from one recarray > to > > the other: > >>> omx.zext[0] = main.ring4ext[0,0] > > Traceback (most recent call last): > File "<input>", line 1, in ? > File "X:/PrWin\numarray\records.py", line 744, in _setitem > self.field(self._names[i])[row] = value.field(self._names[i]) > File "C:\Python22\Lib\site-packages\numarray\numarraycore.py", line 619, > in __tonumtype__ > ValueError: Can't use non-rank-0 array as a scalar. > > >>> `omx.zext[0]` > > '<numarray.records.Record instance at 0x042AFC78>' > > >>> `main.ring4ext[0,0]` > > '<numarray.records.Record instance at 0x042AFC78>' > > >>> q = omx.zext[0] > >>> w = main.ring4ext[0,0] > >>> q > > (2097152107, -595656700, 91141, 1.0634608642000868e+037, -1.14841804241843e > +018, 1.2771574333702815e-040) > > >>> w > > (array([428]), array([75]), array([124]), array([ 1.08846451e+09], > type=Float32), array([ 99.25], type=Float32), array([ 1996.82995605], > type=Float32)) > > >>> omx.zext._formats > > ['1Int32', '1Int32', '1Int32', '1Float32', '1Float32', '1Float32'] > > >>> main.ring4ext._formats > > ['1Int32', '1Int32', '1Int32', '1Float32', '1Float32', '1Float32'] > > > I can't track down why one (q) contains scalars and the other (w) constains > arrays (is array([428]) a 'rank-0 array'? ) ! > This is how I generate them: > main.ring4ext = rec.RecArray(main._extHdrRingBuffer, "i4,i4,i4,f4,f4,f4", > shape=(ts,nc), names=("num","min","max","time","mean","darkVal"), > aligned=1) omx.zext = rec.array(formats="i4,i4,i4,f4,f4,f4", > > names=("num","min","max","time","mean","darkVal"),shape=tuple(shapeZ),align >ed=1 ) > > [[BTW: (shapeZ is a list, if I say: ...,shape=shapeZ I get > NameError, "Illegal shape %s" % `shape` from "records.py" in line 462 > -- usually type(shape) == types.ListType should be OK, right ?) > ]] > > > Any ideas? > > Thanks, > Sebastian Haase > > > > ------------------------------------------------------- > This SF.Net email sponsored by Black Hat Briefings & Training. > Attend Black Hat Briefings & Training, Las Vegas July 24-29 - > digital self defense, top technical experts, no vendor pitches, > unmatched networking opportunities. Visit www.blackhat.com > _______________________________________________ > Numpy-discussion mailing list > Num...@li... > https://lists.sourceforge.net/lists/listinfo/numpy-discussion |
From: Todd M. <jm...@st...> - 2004-06-29 23:50:29
|
On Tue, 2004-06-29 at 17:52, Sebastian Haase wrote: > OK, > I'm still trying to get a handle on these record arrays - because I think they > are pretty cool, if I could get them to work... > Following the code from yesterday (see that posting below) I discovered this: > main.ring4ext[0][0] is not the same as main.ring4ext[0,0] > is this intended ?? > > >>> main.ring4ext[0][0] > (2308, 76, 272, 1088481152.0, 104.18000030517578, 1994.949951171875) > >>> main.ring4ext[0,0] > (array([2308, 2309]), array([76, 76]), array([272, 269]), array([ 1.08848115e > +09, 1.08848115e+09], type=Float32), array([ 104.18000031, 104.45999908], > type=Float32), array([ 1994.94995117, 1994.95996094], type=Float32)) > >>> main.ring4ext.shape # yesterday I had this different !!! (20,1) > (20, 2) > > Any comments are appreciated, I talked to JC Hsu, the numarray.records author, and he explained that we're probably looking at a limitation of numarray.records: it doesn't yet handle multi-dimensional arrays of records. JC indicated he had replied to Sebastian, but for the benefit of everyone else, that's the deal. Regards, Todd > Thanks > Sebastian > > > > > On Monday 28 June 2004 05:00 pm, Sebastian Haase wrote: > > Hi, > > I have two record arrays. I was trying to assign one item from one recarray > > to > > > > the other: > > >>> omx.zext[0] = main.ring4ext[0,0] > > > > Traceback (most recent call last): > > File "<input>", line 1, in ? > > File "X:/PrWin\numarray\records.py", line 744, in _setitem > > self.field(self._names[i])[row] = value.field(self._names[i]) > > File "C:\Python22\Lib\site-packages\numarray\numarraycore.py", line 619, > > in __tonumtype__ > > ValueError: Can't use non-rank-0 array as a scalar. > > > > >>> `omx.zext[0]` > > > > '<numarray.records.Record instance at 0x042AFC78>' > > > > >>> `main.ring4ext[0,0]` > > > > '<numarray.records.Record instance at 0x042AFC78>' > > > > >>> q = omx.zext[0] > > >>> w = main.ring4ext[0,0] > > >>> q > > > > (2097152107, -595656700, 91141, 1.0634608642000868e+037, -1.14841804241843e > > +018, 1.2771574333702815e-040) > > > > >>> w > > > > (array([428]), array([75]), array([124]), array([ 1.08846451e+09], > > type=Float32), array([ 99.25], type=Float32), array([ 1996.82995605], > > type=Float32)) > > > > >>> omx.zext._formats > > > > ['1Int32', '1Int32', '1Int32', '1Float32', '1Float32', '1Float32'] > > > > >>> main.ring4ext._formats > > > > ['1Int32', '1Int32', '1Int32', '1Float32', '1Float32', '1Float32'] > > > > > > I can't track down why one (q) contains scalars and the other (w) constains > > arrays (is array([428]) a 'rank-0 array'? ) ! > > This is how I generate them: > > main.ring4ext = rec.RecArray(main._extHdrRingBuffer, "i4,i4,i4,f4,f4,f4", > > shape=(ts,nc), names=("num","min","max","time","mean","darkVal"), > > aligned=1) omx.zext = rec.array(formats="i4,i4,i4,f4,f4,f4", > > > > names=("num","min","max","time","mean","darkVal"),shape=tuple(shapeZ),align > >ed=1 ) > > > > [[BTW: (shapeZ is a list, if I say: ...,shape=shapeZ I get > > NameError, "Illegal shape %s" % `shape` from "records.py" in line 462 > > -- usually type(shape) == types.ListType should be OK, right ?) > > ]] > > > > > > Any ideas? > > > > Thanks, > > Sebastian Haase > > > > > > > > ------------------------------------------------------- > > This SF.Net email sponsored by Black Hat Briefings & Training. > > Attend Black Hat Briefings & Training, Las Vegas July 24-29 - > > digital self defense, top technical experts, no vendor pitches, > > unmatched networking opportunities. Visit www.blackhat.com > > _______________________________________________ > > Numpy-discussion mailing list > > Num...@li... > > https://lists.sourceforge.net/lists/listinfo/numpy-discussion > > > ------------------------------------------------------- > This SF.Net email sponsored by Black Hat Briefings & Training. > Attend Black Hat Briefings & Training, Las Vegas July 24-29 - > digital self defense, top technical experts, no vendor pitches, > unmatched networking opportunities. Visit www.blackhat.com > _______________________________________________ > Numpy-discussion mailing list > Num...@li... > https://lists.sourceforge.net/lists/listinfo/numpy-discussion -- |
From: Sebastian H. <ha...@ms...> - 2004-06-30 00:00:22
|
On Tuesday 29 June 2004 04:49 pm, Todd Miller wrote: > On Tue, 2004-06-29 at 17:52, Sebastian Haase wrote: > > OK, > > I'm still trying to get a handle on these record arrays - because I think > > they are pretty cool, if I could get them to work... > > Following the code from yesterday (see that posting below) I discovered > > this: main.ring4ext[0][0] is not the same as main.ring4ext[0,0] > > is this intended ?? > > > > >>> main.ring4ext[0][0] > > > > (2308, 76, 272, 1088481152.0, 104.18000030517578, 1994.949951171875) > > > > >>> main.ring4ext[0,0] > > > > (array([2308, 2309]), array([76, 76]), array([272, 269]), array([ > > 1.08848115e +09, 1.08848115e+09], type=Float32), array([ 104.18000031, > > 104.45999908], type=Float32), array([ 1994.94995117, 1994.95996094], > > type=Float32)) > > > > >>> main.ring4ext.shape # yesterday I had this different !!! (20,1) > > > > (20, 2) > > > > Any comments are appreciated, > > I talked to JC Hsu, the numarray.records author, and he explained that > we're probably looking at a limitation of numarray.records: it doesn't > yet handle multi-dimensional arrays of records. JC indicated he had > replied to Sebastian, but for the benefit of everyone else, that's the > deal. > > Regards, > Todd > Thanks, but it actually seems to work well now, as long as I use myRecArray[i][j] instead of myRecArray[i,j]. So, it looks like there is not missing much. I'll keep your "official statement" in mind when I explore this further... Thanks again, Sebastian Haase |
From: Russell E O. <rowen@u.washington.edu> - 2004-06-30 15:55:59
|
At 7:49 PM -0400 2004-06-29, Todd Miller wrote: >On Tue, 2004-06-29 at 17:52, Sebastian Haase wrote: >> OK, >> I'm still trying to get a handle on these record arrays - because >>I think they >> are pretty cool, if I could get them to work... >> Following the code from yesterday (see that posting below) I >>discovered this: >> main.ring4ext[0][0] is not the same as main.ring4ext[0,0] >> is this intended ?? >> >> >>> main.ring4ext[0][0] >> (2308, 76, 272, 1088481152.0, 104.18000030517578, 1994.949951171875) >> >>> main.ring4ext[0,0] >> (array([2308, 2309]), array([76, 76]), array([272, 269]), array([ >>1.08848115e >> +09, 1.08848115e+09], type=Float32), array([ 104.18000031, 104.45999908], >> type=Float32), array([ 1994.94995117, 1994.95996094], type=Float32)) >> >>> main.ring4ext.shape # yesterday I had this different !!! (20,1) >> (20, 2) >> >> Any comments are appreciated, > >I talked to JC Hsu, the numarray.records author, and he explained that >we're probably looking at a limitation of numarray.records: it doesn't >yet handle multi-dimensional arrays of records. JC indicated he had >replied to Sebastian, but for the benefit of everyone else, that's the >deal. I agree. I have gotten numarray.records to handle multi-dimensional arrays, but it's a terrible pain to create them, str(arry) fails and setting elements of records arrays is painful. I hope at some point they get a major redesign, as they don't actually seem to have been designed to fit in with numarray. The resulting code was so ugly that I gave up and used multiple identically shaped arrays instead. -- Russell |
From: Perry G. <pe...@st...> - 2004-06-30 16:07:32
|
On Jun 30, 2004, at 11:55 AM, Russell E Owen wrote: > I agree. I have gotten numarray.records to handle multi-dimensional > arrays, but it's a terrible pain to create them, str(arry) fails and > setting elements of records arrays is painful. I hope at some point > they get a major redesign, as they don't actually seem to have been > designed to fit in with numarray. The resulting code was so ugly that > I gave up and used multiple identically shaped arrays instead. > I think we will be taking a look at that soon. I agree that they could be generalized to work better with numarray. Hopefully we will be soliciting comments in the next few weeks about the best way to do that. Perry |