如何切割数组以获取python中的第0,第2,第3,第4个元素?

时间:2012-07-03 13:38:47

标签: python

我正在尝试切片数组以获得具有两个切片中两个数组的0,2,3,4个元素的切片。我怎么在python中这样做?感谢

4 个答案:

答案 0 :(得分:6)

[a[i] for i in (0, 2, 3, 4)]

可能?

答案 1 :(得分:2)

我不认为我 slice可以做到这一点,使用两个 sliceconcatenate

>>> lis=[1,2,3,4,5,6]
>>> lis[0:1]+lis[2:5]
[1, 3, 4, 5]

答案 2 :(得分:0)

如果你正在使用numpy:

a[np.array((0,2,3,4))]

您需要使用numpy数组进行索引以触发高级索引(使用元组将无效)。

如果您更喜欢,可以使用列表:

a[[0,2,3,4]]

那可能会更清洁......

答案 3 :(得分:0)

好吧,如果我们从字面上理解它,我认为这意味着' slice1具有(两个切片中的两个数组的0,2,3,第4个元素2)',这意味着 ' slice1具有(两个slice2,每个具有(自己的数组的0,2,3,第4个元素))'。这给了我们

import operator as op
arr1 = [1,7,4,75,100,67]
arr2 = ['a', 'b', 'e', 'z', 'r', 's']
the_slice = map(op.itemgetter(0, 2, 3, 4), (arr1, arr2)) 

结果为list(the_slice)

[(1, 4, 75, 100), ('a', 'e', 'z', 'r')]