python中三个点[,...]的切片方式

想要真正理解切片,不要有长宽高的概念,要用维度的概念去替代

p y t h o n 中 三 个 点 ‘ [ , . . . ] ‘ 的 切 片 方 式 python中三个点`[,...]`的切片方式 python[,...]

三个点表示对最低的维度进行操作,所谓最低维度就是[Xn,Xn-1,…,X0]数组中X0这个维度

在这里插入图片描述

import torch
rgb = torch.randn(1, 3, 3, 4)
rgb

在这里插入图片描述

rgb.shape

在这里插入图片描述

rgb[...,1]

在这里插入图片描述

rgb[...,1].shape

在这里插入图片描述

rgb2 = torch.randn(3, 3, 4)
rgb2

在这里插入图片描述

rgb2[...,1]

在这里插入图片描述

rgb2[...,1].shape

在这里插入图片描述


import numpy
>>> a = numpy.array([[1,2,3,4,5],[6,7,8,9,10],[1,2,3,4,5],[6,7,8,9,10]])
>>> a
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10]])
>>> a[...,2] #表示遍历每行,2表示索引为2的所在列
array([3, 8, 3, 8])
>>> a[...,:2]#表示遍历每行,:2表示索引为<2的0,1所在的列
array([[1, 2],
       [6, 7],
       [1, 2],
       [6, 7]])
>>> a[...,::2]#表示遍历每行,2表示步长,选取多索引为0,2,4所在的列
array([[ 1,  3,  5],
       [ 6,  8, 10],
       [ 1,  3,  5],
       [ 6,  8, 10]])
a[None,...]#相当于插入维度,也想当于reshape(a,[1,4,4])
array([[[[ 1,  2,  3,  4,  5],
         [ 6,  7,  8,  9, 10],
         [ 1,  2,  3,  4,  5],
         [ 6,  7,  8,  9, 10]]]])

猜你喜欢

转载自blog.csdn.net/qq_41375318/article/details/114527076