例子:
x = np.array([[[1],[2],[3]], [[4],[5],[6]]])
问题:
x[:, np.newaxis, 2]
是什么意思?
回答:
首先看,如果x[:, 2]
,它会取第2列,但是维度会减少1维。因为2,不是切片。
如果写成 x[:, 2:3]
,它会取第2列,而且维度不减。因为2:3是切片。
另一种写法等价写法是:x[:, np.newaxis, 2]
。怎么看呢?先不看newaxis,它是做 x[:, 2]
,然后在结果上增加1个维度(这个维度的长度只有1)。增加哪个维度呢?看np.newaxis出现在第几个位置。如这个例子,就是增加第2个维度。
所以,实际上 np.newaxis, 2 应该合起来看,就是既取出第2列(维度少1),但是又立刻加个维度。这样结果的维度保持不变。只是第2维的长度减少到1。
总结:
x[:, np.newaxis, 2]
与 x[:, 2:3]
的结果是一样的。
网友评论