2013-07-21 22 views
15

如果我有一个数组x,并且执行np.repeat(x,2),我实际上正在复制数组。如何删除python中的数组的其他元素? (np.repeat()的逆函数?)

>>> 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]) 

回答

33

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

+0

如果你想让y包含这些信息,它应该是y = y [1 :: 2] – rafee

0

如果您要求用户输入数组,那我该怎么办?

所以制作功能帮了不少忙:

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

帮我弄清楚,如果任何用户是在一个数组进入,我们可以通过调用这个函数处理它。

相关问题