numpy添加新的维度:newaxis的方法
本文介绍如何使用numpy中的newaxis为原数组增加新维度。通过调整newaxis的位置,可以灵活改变数组的shape,例如将一维数组转换为行向量或列向量。该方法常用于解决从二维数组抽取数据后维度丢失的问题,帮助还原数据形状。
在numpy库中,newaxis是一个非常有用的工具,它允许用户为现有的数组增加一个新的维度。
需要注意的是,newaxis在数组索引中的放置位置不同,会生成形状各异的新数组。
以下以一维数组为例进行说明。
x = np.random.randint(1, 8, size=5) x Out[48]: array([4, 6, 6, 6, 5]) x1 = x[np.newaxis, :] x1 Out[50]: array([[4, 6, 6, 6, 5]]) x2 = x[:, np.newaxis] x2 Out[52]: array([[4], [6], [6], [6], [5]])
从上述代码示例可以看出,当把newaxis放在切片操作的前面时,
原数组的shape原本是5,变换后变成了1×5,这意味着在原有维度的前方增加了一个维度,而原有的维度结构保持不变。
相反,如果将newaxis放在后面,生成的新数组shape变为5×1,这表示在原有维度的后方增加了一个新维度。
由此可见,newaxis放置在索引的哪个位置,新增加的维度就会出现在shape对应的那个位置上。
具体效果如下所示。

常见应用场景。
在数据处理中,经常需要从数组中提取部分数据,即获取“一片”或“一条”子集。
例如,尝试从二维数组中提取某一列的数据。
直接提取后,返回结果的维度通常会降为一维。
如果业务逻辑要求保持二维结构,就可以利用上述newaxis方法将一维结果还原为二维数组。
以上关于numpy使用newaxis添加新维度的方法分享完毕,希望能为读者提供参考与帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













