Как удалить все остальные элементы массива в python? (Обратный np.repeat()?)

Если у меня есть массив x и выполняйте np.repeat(x,2), я практически дублирую массив.

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

Как я могу сделать обратное, чтобы в итоге получить исходный массив?

Он также должен работать со случайным массивом y:

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

Как я могу удалить каждый другой элемент, чтобы в итоге получилось следующее?

array([7, 2, 8, 3])

Ответы

Ответ 1

y[1::2] должен выполнить эту работу. Здесь второй элемент выбирается путем индексации с 1, а затем берется с интервалом 2.

Ответ 2

У меня возникли проблемы с тем, что, если вы попросили ввести массив пользователем?

Таким образом, создание функции помогло много:

def remove_every_other(my_list):
    return my_list[::2]
    pass

Это помогло мне понять, что если какой-либо пользователь должен был вводить в массив, мы могли бы обработать его, вызвав эту функцию.