-2

我正在尝试对一个数组进行切片以获得在两个切片中具有两个数组的第 0、2、3、4 个元素的切片。我如何在python中做到这一点?谢谢

4

4 回答 4

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

也许?

于 2012-07-03T13:45:05.973 回答
2

我不认为我一个人 slice可以做到,使用两个 sliceconcatenate他们。

>>> lis=[1,2,3,4,5,6]
>>> lis[0:1]+lis[2:5]
[1, 3, 4, 5]
于 2012-07-03T13:42:36.597 回答
0

If you're using numpy:

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

You need to use a numpy array for the indexing in order to trigger Advanced Indexing (using a tuple won't work).

If you perfer, you could use a list:

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

That might be a little cleaner ...

于 2012-07-03T13:47:50.370 回答
0

好吧,如果我们从字面上理解,我认为这意味着' slice1 具有 (0,2,3, 两个 slices2 中两个数组的第 4 个元素) ',这意味着' slice1 具有 (两个 slices2 每个具有 (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')]
于 2012-07-03T14:11:02.333 回答