[Numpy-discussion] array shift and |=, copy, and backward operations

Nico nicolist at limare.net
Fri Feb 10 12:47:02 EST 2006


> a = array([0,1,0,0])
> a[1:] |= a[:-1]
>
> gives the unexpected result [0 1 1 1] instead of [0 1 1 0] because
> python performs the |= on the first cell, then on the second, and so on.
>
> I found two ways to get it right, with a copy:
> b = a.copy()
> a[1:] |= b[:-1]
>
> or working backward:
> a[-1:1:-1] |= a[-2:0:-1]

I finally noticed that

a = array([0,1,0,0])
a[1:] |= a[:-1] | False

also works, but I can't figure out why...

-- 
Nico




More information about the NumPy-Discussion mailing list