Python中的numpy数组维度扩展详解
作者:TracelessLe
这篇文章主要介绍了Python中的numpy数组维度扩展详解,在numpy数组中,切片功能非常常用,例如x[:]表示取x的所有元素,可以通过在切片中增加None或者np.newaxis实现,它们的作用就是在相应的位置上增加一个维度,在这个维度上只有一个元素,需要的朋友可以参考下
numpy数组维度扩展
在numpy数组中,切片功能非常常用,例如 x[:] 表示取 x 的所有元素。
那么如何对一个numpy数组进行维度扩展呢?
可以通过在切片中增加 None 或者 np.newaxis 实现,它们的作用就是在相应的位置上增加一个维度,在这个维度上只有一个元素。
在切片操作中 np.newaxis 和 None 等价:
实验
假设一个numpy数组如下:
import numpy as np x = np.array([[[1],[2],[3]], [[4],[5],[6]]])
其维度为:
x.shape (2, 3, 1)
希望将其维度增加为(1,2,3,1): 可以通过在切片中增加 None :
y = x[None] y array([[[[1], [2], [3]], [[4], [5], [6]]]]) y.shape (1, 2, 3, 1)
或者在切片中加入 np.newaxis :
z = x[np.newaxis] z array([[[[1], [2], [3]], [[4], [5], [6]]]]) z.shape (1, 2, 3, 1)
还可以将其维度增加为(2,1,3,1):
a = x[:,None,:,:] a array([[[[1], [2], [3]]], [[[4], [5], [6]]]]) a.shape (2, 1, 3, 1)