在训练网络的数据处理中,经常需要对数据进行维度的改变。
经整理有如下几种处理操作:
一、newaxis
numpy中包含的newaxis可以给原数组增加一个维度。
np.newaxis放的位置不同,新产生的维度也不同
输出:
由以上代码可以看出,当把newaxis放在前面的时候
以前的shape是5,现在变成了1×5。而把newaxis放后面的时候,输出的新数组的shape就是5×1。
所以,newaxis放在第几个位置,就会在shape里面看到相应的位置增加了一个维数
二、expand_dims()
其中参数为axis,与上方法中newaxis同理,表示扩展维度在哪里
输出:
三、reshape()
在不改变数据内容的情况下,改变一个数组的格式。
output:
例子2:
a = np.zeros((10,5,5),dtype=np.uint8)
a1 = a[...,np.newaxis]
a2 = np.expand_dims(a, axis=3) # 或axis=-1,表示最后一个维度
a3 = np.reshape(a, (a.shape[0],a.shape[1],a.shape[2],1))
# a1.shape == a2.shape == a3.shape : (10,5,5,1)
参考:https://blog.csdn.net/normol/article/details/87971148?spm=1001.2014.3001.5502