[Numpy-discussion] bug in numarray.maximum.reduce ?

Sebastian Haase haase at msg.ucsf.edu
Fri Jul 2 08:28:01 EDT 2004


On Tuesday 29 June 2004 05:05 pm, Sebastian Haase wrote:
> Hi,
>
> Is this a bug?:
> >>> # (import numarray as na ; 'd' is a 3 dimensional array)
> >>> d.type()
>
> Float32
>
> >>> d[80, 136, 122]
>
> 80.3997039795
>
> >>> na.maximum.reduce(d[:,136, 122])
>
> 85.8426361084
>
> >>> na.maximum.reduce(d) [136, 122]
>
> 37.3658103943
>
> >>> na.maximum.reduce(d,0)[136, 122]
>
> 37.3658103943
>
> >>> na.maximum.reduce(d,1)[136, 122]
>
> Traceback (most recent call last):
>   File "<input>", line 1, in ?
> IndexError: Index out of range
>
> I was using  na.maximum.reduce(d)  to get a "pixelwise" maximum along Z
> (axis 0). But as seen above it does not get it right.  I then tried to
> reproduce
>
> this with some simple arrays, but here it works just fine:
> >>> a = na.arange(4*4*4)
> >>> a.shape=(4,4,4)
> >>> na.maximum.reduce(a)
>
> [[48 49 50 51]
>  [52 53 54 55]
>  [56 57 58 59]
>  [60 61 62 63]]
>
> >>> a = na.arange(4*4*4).astype(na.Float32)
> >>> a.shape=(4,4,4)
> >>> na.maximum.reduce(a)
>
> [[ 48.  49.  50.  51.]
>  [ 52.  53.  54.  55.]
>  [ 56.  57.  58.  59.]
>  [ 60.  61.  62.  63.]]
>
>
> Any hint ?
>
> Regards,
> Sebastian Haase

Hi again,
I think the reason that no one responded to this is that it just sounds to 
unbelievable ...
Sorry for the missing piece of information, but 'd' is actually a memmapped 
array !
>>> d.info()
class: <class 'numarray.numarraycore.NumArray'>
shape: (80, 150, 150)
strides: (90000, 600, 4)
byteoffset: 0
bytestride: 4
itemsize: 4
aligned: 1
contiguous: 1
data: <MemmapSlice of length:7290000 readonly>
byteorder: big
byteswap: 1
type: Float32
>>> dd = d.copy()
>>> na.maximum.reduce(dd[:,136, 122])
85.8426361084
>>> na.maximum.reduce(dd)[136, 122]
85.8426361084
>>>

Apparently we are using memmap so frequently now that I didn't even think 
about that - which is good news for everyone, because it means that it works 
(mostly).

I just see that 'byteorder' is 'big' - I'm running this on an Intel Linux PC. 
Could this be the problem?
Please some comments !

Thanks,
Sebastian





More information about the NumPy-Discussion mailing list