Velocity Reviews > numpy array operation

# numpy array operation

C. Ng
Guest
Posts: n/a

 01-29-2013
Is there a numpy operation that does the following to the array?

1 2 ==> 4 3
3 4 2 1

Peter Otten
Guest
Posts: n/a

 01-29-2013
C. Ng wrote:

> Is there a numpy operation that does the following to the array?
>
> 1 2 ==> 4 3
> 3 4 2 1

>>> a

array([[1, 2],
[3, 4]])
>>> a[::-1].transpose()[::-1].transpose()

array([[4, 3],
[2, 1]])

Or did you mean

>>> a.reshape((4,))[::-1].reshape((2,2))

array([[4, 3],
[2, 1]])

Or even

>>> -a + 5

array([[4, 3],
[2, 1]])

Tim Williams
Guest
Posts: n/a

 01-29-2013
On Tuesday, January 29, 2013 3:41:54 AM UTC-5, C. Ng wrote:
> Is there a numpy operation that does the following to the array?
>
>
>
> 1 2 ==> 4 3
>
> 3 4 2 1
>
>
>

>>> import numpy as np
>>> a=np.array([[1,2],[3,4]])
>>> a

array([[1, 2],
[3, 4]])
>>> np.fliplr(np.flipud(a))

array([[4, 3],
[2, 1]])

Terry Reedy
Guest
Posts: n/a

 01-29-2013
On 1/29/2013 1:49 PM, Alok Singhal wrote:
> On Tue, 29 Jan 2013 00:41:54 -0800, C. Ng wrote:
>
>> Is there a numpy operation that does the following to the array?
>>
>> 1 2 ==> 4 3
>> 3 4 2 1
>>

>
>
>>>> import numpy as np
>>>> a = np.array([[1,2],[3,4]])
>>>> a

> array([[1, 2], [3, 4]])
>>>> a[::-1, ::-1]

> array([[4, 3], [2, 1]])
>

Nice. The regular Python equivalent is

a = [[1,2],[3,4]]
print([row[::-1] for row in a[::-1]])
>>>

[[4, 3], [2, 1]]

The second slice can be replaced with reversed(a), which returns an
iterator, to get
[row[::-1] for row in reversed(a)]
The first slice would have to be list(reversed(a)) to get the same result.

--
Terry Jan Reedy