[:, None, None]是改变数组维度的方式
假设:
a = np.array([1,2,3])
进行下面操作
a[:,None]
结果为:
Out[35]:
array([[1],
[2],
[3]])
也就是一维变成二维的了,
如果:
a[:,None,None]
大家猜猜结果是什么?
第一个冒号代表切片,把一维a的元素全部切完,然后第二个为None,表示把一维变成二维并且第二个维度上的值为0,第三个元素为None,表示增加一个维度,并且该维度值为0
所以a[:,None,None]结果为:
Out[36]:
array([[[1]],
[[2]],
[[3]]])
那
a[:,None,None,None]
呢?结果为:
Out[37]:
array([[[[1]]],
[[[2]]],
[[[3]]]])
如果我们本来的数组是二维的,例如:
a=[[3,3,3],[4,4,4],[5,5,5]]
a[:,None] 结果为:
Out[27]:
array([[[3, 3, 3]],
[[4, 4, 4]],
[[5, 5, 5]]])
只有一个None,维度就升了一维