NumPy一维与二维数组拼接实战:利用newaxis解决维度不匹配
本文详解如何利用NumPy实现一维与二维数组的拼接。重点解析shape为(3,)的一维数组与(3,1)二维数组的区别,并通过np.newaxis将一维数组升维,配合concatenate、hstack等函数完成拼接操作,提供完整代码示例。
一维数组
1. 使用NumPy初始化一维数组
a = np.array([1,2,3]); print a.shape
执行上述代码后,输出的形状(shape)结果应为 (3,)。
二维数组
2. 使用NumPy初始化二维数组
a = np.array([[1,2,3]]); b = np.array([[1],[2],[3]]); print a.shape//(1,3) print b.shape//(3,1)
需要特别注意,形状为 (3,) 的数组与形状为 (3,1) 的数组在定义上存在本质区别:前者属于一维数组,而后者属于二维数组。
数组拼接
3. NumPy提供了多种拼接函数,例如 hstack 和 vstack 等,网络上也有大量相关总结文章。但执行拼接操作的前提是两个数组的维度必须兼容。因此,当尝试将一维数组与二维数组进行拼接时,必须使用 newaxis 将一维数组转换为二维数组,即将其 shape 从 (3,) 转换为 (3,1)。
a = np.array([1,2,3]); b = np.array([[1],[2],[3]]); #将一维数组a转化为二维数组 a = a[:,np.newaxis]; c = np.concatenate((b,a),axis=1) print c.shape//输出为(3,2)
总结
以上即为利用NumPy实现一维与二维数组拼接的完整代码示例,希望能为读者提供帮助。感兴趣的朋友可继续查阅本站其他相关专题。如有疏漏,欢迎留言指正,感谢支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













