代码
import numpy as np
a = np.arange(8).reshape((2, 2, 2))
print(a)
print(a[0, :])
print(a[0, ...])
print(a[:, 0])
print(a[..., 0])
结果
[[[0 1]
[2 3]]
[[4 5]
[6 7]]]
[[0 1]
[2 3]]
[[0 1]
[2 3]]
[[0 1]
[4 5]]
[[0 2]
[4 6]]
结论
二者功能类似,均为取出维度上的全部元素,区别在于省略号代表余下所有维度,可以代表多个维度,而冒号只代表一个维度,比如示例中的a[…,0]中省略号代表除了最后一维外的全部维度,与a[:,:,0]等价,而a[:,0]中的冒号只代表第0维,与a[:,0,:]等价,从而造成了a[…,0]与a[:,0]的不同,显然省略号只能出现一次,而冒号可以出现多次。