Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove every other element of an array in python? (The inverse of np.repeat()?)

If I have an array x, and do an np.repeat(x,2), I'm practically duplicating the array.

>>> x = np.array([1,2,3,4])     >>> np.repeat(x, 2) array([1, 1, 2, 2, 3, 3, 4, 4]) 

How can I do the opposite so that I end up with the original array?

It should also work with a random array y:

>>> y = np.array([1,7,9,2,2,8,5,3,4])   

How can I delete every other element so that I end up with the following?

array([7, 2, 8, 3]) 
like image 685
Leonardo Lopez Avatar asked Jul 21 '13 22:07

Leonardo Lopez


1 Answers

y[1::2] should do the job. Here the second element is chosen by indexing with 1, and then taken at an interval of 2.

like image 108
rafee Avatar answered Oct 04 '22 08:10

rafee