numpy:二维数组,删除奇数索引并保持相同的数组格式

时间:2019-02-21 14:17:09

标签: python numpy

我的数组如下:

a = ([1,2],[2,3],[4,5],[3,8])

我执行了以下操作以删除奇数索引:

a = [v for i, v in enumerate(a) if i % 2 == 0]

但是它现在让我潜入了两个不同的数组,而不是一维的二维数组:

a= [array([1, 2]), array([4, 5])]

如何保持与开头相同的格式?谢谢!

2 个答案:

答案 0 :(得分:2)

那很简单

a[::2]

产生具有偶数索引的行。

答案 1 :(得分:1)

使用numpy数组索引,而不是理解:

c = a[list(range(0,len(a),2)),:]

如果您将c定义为列表推导的输出,它将返回list的一维numpy数组。相反,使用适当的索引会将结果保留为numpy数组。

请注意,我们要做的是指定保留的内容,而不是“删除”奇数索引:采用具有偶数索引(list(range(0,len(a),2))部分)的所有行,并针对每一行采用所有元素({{ 1}}部分)