一、三点号、半省略号的作用
作用用一句话总结就是“省略在相应位置所有的冒号”。
如果把三点省略号放在最前面,表示省略前面所有的维度;放在最后面表示省略后面所有的维度;放在中间表示省略中间的维度。
我们可以通过人工添加一些索引和合理地放置半省略号,来改变冒号索引的维度。
>>> d
array([[[ 0, 1, 2],
[ 2, 3, 4],
[ 4, 5, 6]],
[[ 8, 9, 10],
[10, 11, 12],
[12, 13, 14]],
[[16, 17, 18],
[18, 19, 20],
[20, 21, 22]]])
>>> d[1,...]
array([[ 8, 9, 10],
[10, 11, 12],
[12, 13, 14]])
>>> d[...,1]
array([[ 1, 3, 5],
[ 9, 11, 13],
[17, 19, 21]])
>>> d[1,...,1]
array([ 9, 11, 13])
参考:https://zhuanlan.zhihu.com/p/264896206
二、None、newaxis在索引上的用法
类似numpy模块下的numpy.expand_axis()函数的扩展数组维度的功能,我们通过在索引数组时添加None或numpy.newaxis参数到某一个维度上,来添加这个维度。
假设arr的形状是3*4*5,那么我调用arr1 = arr[:, None, ...],那么arr1的形状就是3*1*4*5(从左开始数,在第几个位置就在第几个维度上加1)。