将切片索引存储为对象

2024-05-02 20:09:22 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个列表列表等等。。。有一定深度:

ExampleNestedObject = numpy.ones(shape = (3,3,3,3,3))

通常,我可以通过以下方式获得一个元素:

#Let:
#a, b, c, d, e -> are integers

print ExampleNestedObject[a][b][c][d][e]

#numpy also happens to allow:

print ExampleNestedObject[(a,b,c,d,e)]

#python in general allows:

print ExampleNestedObject[a,b,:,d,e]

我的问题是->;如何将索引“a,b,:,d,e”存储为对象

SomeSliceChoice = a,b,:,d,e

print ExampleNestedObject[SomeSliceChoice]

Tags: tointegersnumpy元素列表方式onesare
1条回答
网友
1楼 · 发布于 2024-05-02 20:09:22

诀窍是将索引对象视为切片对象的元组

例1:

Object[1,2,:] == Object[(1,2,slice(None,None,None))]

例2:

WantedSliceObject = (1,2,slice(None,None,None), 4,5)
Object[1,2,:,4,5] == Object[WantedSliceObject]

请注意“切片”的语法:

#slice(start, stop[, step])

#1 ==  slice(1, 2, 1)

WantedSliceObject2 = (
   slice(1, 2, 1),
   slice(2, 2, 1),
   slice(None,None,None), 
   slice(4, 2, 1),
   slice(5, 2, 1)
   )

#WantedSliceObject2 == WantedSliceObject

相关问题 更多 >