python切片语法[o:,:]是什么意思

时间:2014-03-03 11:06:40

标签: python numpy

只是一个很小的,可能非常简单的问题。有人给了我以下代码:

im = axs[0,i].pcolormesh(imgX[o:,:], imgY[o:,:], img.mean(-1)[o:,:], cmap='Greys')

我知道":"表示该列或行中的所有内容(或数组深度,具体取决于您的查看方式)。但是" o:"意思?

2 个答案:

答案 0 :(得分:3)

以下与使用情况相关,但显示了“解析”操作的方式。


class X:
   def __getitem__(self, index):
       return index

X()[:,:]
>> (slice(None,None,None), slice(None,None,None))

为了清晰起见,使用不同的值:

X()[0, 1:, 3:4, 5:6:7]
>> (0, slice(1,None,None), slice(3,4,None), slice(5,6,7))

因此,考虑到这一点img[o:,:]就像img[o:, :]就像

img.__getitem__( (slice(o,None,None), slice(None,None,None)) )

答案 1 :(得分:2)

o是一个变量,与其他变量一样(但名称非常糟糕,因为它可能与零混淆)。

[o:, :]表示“第一个轴中的所有元素从元素o开始,所有元素都在第二个轴中。在特定情况下,图像将仅显示来自{{1的行到底部。

我想补充一点,在这种情况下,您将获得一个视图,即对原始数组的引用,因此实际上不会复制数据。