我正在尝试切片数组以获得具有两个切片中两个数组的0,2,3,4个元素的切片。我怎么在python中这样做?感谢
答案 0 :(得分:6)
[a[i] for i in (0, 2, 3, 4)]
可能?
答案 1 :(得分:2)
我不认为我单 slice
可以做到这一点,使用两个 slice
和concatenate
。
>>> 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')]