簡體   English   中英

如何在python中訪問切片對象的元素

[英]How do I access the elements of a slice object in python

我正在使用scipy.ndimage.label和scipy.ndimage.find_objects來查找圖像中的內容。 它返回一個切片數組。 我試圖從切片中獲取對象的坐標,但似乎無法找到進入切片對象的方法。 這是一個簡單的例子:

a = 1
b = 2
c = 13
d = 47
j = slice(a,b,None)
k = slice(c,d,None)
x = (j, k)

print(x)
print(x[0])
print(x[0].indices(2))
print(x[1].indices(2))

輸出是:

(slice(1, 2, None), slice(13, 47, None))
slice(1, 2, None)
(1, 2, 1)
(2, 2, 1)

基本上我正在尋找獲得a,b,c和d的值的能力,如果我只給出切片元組x。 我認為指數會讓我在路上,但我不理解它的行為。

您在尋找startstopstep屬性嗎?

>>> s = slice(1, 2, 3)
>>> s.start
1
>>> s.stop
2
>>> s.step
3

slice.indices計算將為具有輸入長度的iterable訪問的索引的開始/停止/步驟。 所以,

>>> s = slice(-1, None, None)
>>> s.indices(30)
(29, 30, 1)

這意味着您將從迭代中獲取項目29。 它可以方便地與xrange (或range )組合:

for item in range(*some_slice.indices(len(sequence))):
    print(sequence[item])

作為一個具體的例子:

>>> a = range(30)
>>> for i in a[-2:]:
...   print(i)
... 
28
29
>>> s = slice(-2, None, None)
>>> for ix in range(*s.indices(len(a))):
...   print(a[ix])
... 
28
29

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM