27

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

2 回答 2

54

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

于 2013-07-21T22:16:48.557 回答
1

如果您要求用户输入数组,我遇到了麻烦?

所以制作一个函数有很大帮助:

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

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

于 2016-10-27T03:40:30.550 回答