gpt4 book ai didi

python - 如何在 python 中访问切片对象的元素

转载 作者:太空狗 更新时间:2023-10-30 02:42:28 25 4
gpt4 key购买 nike

我正在使用 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)

基本上,如果我只得到切片元组 x,我正在寻找获取 a、b、c 和 d 值的能力。我以为索引会让我上路,但我不理解它的行为。

最佳答案

您是否正在寻找 startstopstep 属性?

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

slice.indices 计算索引的开始/停止/步长,对于具有输入长度的可迭代对象,这些索引将被访问。所以,

>>> 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

关于python - 如何在 python 中访问切片对象的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36459853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com