2023-03-09 np中的newaxis

2023-03-08  本文已影响0人  胜果铺子

例子:
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] 的结果是一样的。

参考:
Indexing on ndarrays

上一篇 下一篇

猜你喜欢

热点阅读