如何在python中删除数组中的每个其他元素? (np.repeat()的倒数?)

时间:2013-07-21 22:13:02

标签: python arrays numpy

如果我有一个数组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])

2 个答案:

答案 0 :(得分:38)

y[1::2]应该做的工作。这里第二个元素通过索引为1来选择,然后以2的间隔进行选择。

答案 1 :(得分:0)

如果您要求用户输入数组,我遇到了什么问题?

所以创建一个函数有很多帮助:

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

这帮助我弄清楚如果有任何用户输入数组,我们可以通过调用此函数来处理它。