np.newaxis
功能:为numpy.ndarray(多维数组)增加一个轴
np.newaxis 在使用和功能上等价于 None,查看源码发现:newaxis = None,其实就是 None 的一个别名。
举例:
原始数据
x_data = np.linspace(-1,1,5) print(x_data,x_data.shape)
用np.newaxis加新的轴和用None加新的轴得到的结果一致
x1_data = np.linspace(-1,1,5)[:,np.newaxis] print(‘x1_data‘,x1_data,x1_data.shape) x2_data = np.linspace(-1,1,5)[:,None] print(‘x2_data‘,x2_data,x2_data.shape)
对比一下在前面、后面加newaxis的不同
在前面加相当于在前面加上了一个维度;
在后面加相当于在后面加上了一个维度,也起到了转置的作用
x_data = np.linspace(-1,1,5)[:,np.newaxis] print(‘x_data‘,x_data) print(x_data.shape) y_data = np.linspace(-1,1,5)[np.newaxis,:] print(‘y_data‘,y_data) print(y_data.shape)
多维情况是一样的
x1_data = np.linspace(-1,1,24).reshape(2,3,4) y1_data = x1_data[:,np.newaxis,:,:] print(‘x1_data‘,x1_data) print(x1_data.shape) print(‘y1_data‘,y1_data) print(y1_data.shape)
适用场景:
经常会遇到这样的问题,需要从数组中取出一部分的数据,也就是取出“一片”或者“一条”,比如需要从二维数组里面抽取一列,取出来之后维度却变成了一维,假如我们需要将其还原为二维,就需要上面的方法了
参考文献:
【1】np.newaxis 为 numpy.ndarray(多维数组)增加一个轴
原文:https://www.cnblogs.com/nxf-rabbit75/p/10621211.html