Python 数组[…,list([某物])是什么意思?

Python 数组[…,list([某物])是什么意思?,python,python-3.x,image,numpy,pytorch,Python,Python 3.x,Image,Numpy,Pytorch,我正在看下面几行代码,但我不理解image[…,list()]。这三个点是什么意思 self.probability=0.5 self.index=列表(排列(范围(3),3)) 如果random.random()

我正在看下面几行代码,但我不理解
image[…,list()]
。这三个点是什么意思

self.probability=0.5
self.index=列表(排列(范围(3),3))
如果random.random()
以上几行到底发生了什么

我知道
list()
部分从
图像
获取随机通道

列表(排列(范围(3),3))
生成整数的所有排列
0,1,2

from itertools import permutations
list(permutations(range(3), 3))
# [(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]
因此,下面从这些排列元组中进行选择:

list(self.indices[random.randint(0, len(self.indices) - 1)])]
在任何情况下,您都会在
图像的最后一个轴上进行排列,这通常是图像通道
RGB
(注意,在这里使用省略号(
)图像[…,ixs
),我们在除最后一个轴之外的所有轴上进行完整切片。因此,这是对图像通道执行混洗

示例运行-

indices = list(permutations(range(3), 3))
indices[np.random.randint(0, len(indices) - 1)]
# (2, 0, 1)
下面是一个示例,请注意,这不会改变形状,我们仅使用整数数组索引在最后一个轴上进行索引:

列表(排列(范围(3),3))
生成整数的所有排列
0,1,2

from itertools import permutations
list(permutations(range(3), 3))
# [(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]
因此,下面从这些排列元组中进行选择:

list(self.indices[random.randint(0, len(self.indices) - 1)])]
在任何情况下,您都会在
图像的最后一个轴上进行排列,这通常是图像通道
RGB
(注意,在这里使用省略号(
)图像[…,ixs
),我们在除最后一个轴之外的所有轴上进行完整切片。因此,这是对图像通道执行混洗

示例运行-

indices = list(permutations(range(3), 3))
indices[np.random.randint(0, len(indices) - 1)]
# (2, 0, 1)
下面是一个示例,请注意,这不会改变形状,我们仅使用整数数组索引在最后一个轴上进行索引:


它是Python中称为省略号的对象(例如,作为缺少的内容的占位符)


如果您想在NumPy中访问多维数组中的特定元素,这将非常有用。

它是Python中称为省略号的对象(例如,作为缺少的内容的占位符)


如果您想在NumPy中访问多维数组中的特定元素,这应该很有帮助。

这回答了您的问题吗?答案有帮助吗?不要忘记您可以向上投票并接受答案。看,谢谢!这回答了您的问题吗?答案有帮助吗?不要忘记您可以向上投票并接受答案。看,谢谢!您说except表示最后一个轴,但索引[np.random---]会生成三个值,对吗?那么它是如何工作的?因此,如果最后一个维度是三,那么图像的这三个值将被洗牌?我是否正确?请看一看示例。这里的
基本上表示“忽略前两个轴”,并使用
(0,2,1)
我们在这些索引的最后一个轴(频道)上建立索引。因此,在本例中,@venkatasaireddyavuliuriyou说,除了最后一个轴,频道现在将被排序为
RBG
,但索引[np.random---]生成三个值,对吗?那么它是如何工作的?如果最后一个维度是三,那么图像的这三个值将被洗牌?我正确吗?看看这个例子。这里的
基本上说“忽略前两个轴”,并且使用
(0,2,1)
我们在最后一个轴(通道)上进行索引因此,在本例中@VenkataSaiReddyAvuluri中,通道现在将被排序为
RBG