numpyArr [:,:,:,c]和numpyArr [...,c]有什么区别?

问题描述 投票:0回答:1

我一直在学习课程的深度学习课程。在我完成任务时,我在github上看到了一段代码。

1. numpyArr[...,c]
2. numpyArr[:,:,:,c]

这些切片方法有什么区别?

python numpy multidimensional-array slice numpy-ndarray
1个回答
3
投票

如果两个阵列都有4个维度,则结果没有差异。但是,如果您不关心尺寸的数量,使用省略号(...)只表示任意数量的尺寸。所以第一个版本意味着:

“得到所有尺寸,但从最后一个(不管是最后一个)只有条目c

和第二种方式

“获得尺寸0,1,2完成,并从尺寸3只进入c

对于4维阵列而言,这是相同的,但对于5维阵列则不同。

对于具有多个维度的阵列,可以实现更多乐趣:

arr = np.random.uniform(size=(3, 3, 3, 3, 3))
print(arr[1, ..., 2, 3].shape)

这意味着:获取第一个维度的第二个条目以及最后两个维度中的条目2和3以及其间的所有内容。

Some years ago, this has already been asked,但需要知道...是省略号。

© www.soinside.com 2019 - 2024. All rights reserved.