Python NumPy矩阵堆叠详解:stack、vstack与hstack用法

Mia
Mia
发布时间:2026-10-13| 4人浏览过
原创

本文详细介绍Python NumPy库中矩阵堆叠的核心函数。通过对比stack、vstack和hstack的用法,解析axis参数对堆叠维度的影响。结合代码示例展示二维数组的垂直与水平拼接效果,并探讨stack与concatenate函数的等价关系,帮助开发者高效处理数组操作。

NumPy矩阵堆叠函数概览

在实际开发中,经常需要进行矩阵堆叠操作。起初考虑手动编写处理函数,但经查找发现NumPy库已提供现成的解决方案,因此整理相关用法供参考。

基础堆叠代码示例


import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
np.stack((a,b)) #默认行堆叠

输出:

array([[1, 2, 3],
  [4, 5, 6]])

np.vstack((a, b))

输出:

array([[1, 2, 3],
  [4, 5, 6]])
np.hstack((a, b))

输出:

array([1, 2, 3, 4, 5, 6])

stack、vstack与hstack的区别

上述代码主要演示了堆叠函数的基本用法。NumPy提供了通用的stack()函数,支持多种堆叠模式。虽然示例针对二维矩阵,但该函数同样适用于其他维度。为方便使用,NumPy还封装了vstack()用于垂直堆叠(vertically)和hstack()用于水平堆叠(horizontally)。

stack()函数包含一个关键参数axis,用于指定堆叠的维度。默认值为0,其效果与vstack()一致。当将axis设置为1时,输出结果会有所不同,具体表现如下所示。

axis参数对堆叠维度的影响


np.stack((a,b),axis=1)

输出:

array([[1, 4],
  [2, 5],
  [3, 6]])

axis=1时的列重组逻辑

从输出结果可以看出,当axis=1时,操作逻辑相当于提取原数组a的第二维度(即列),将每一列依次取出,并按行重新组合成一个新的矩阵。

stack与concatenate的关系探讨

关于hstack()的效果是否可以直接通过stack()实现,目前尚未找到直接对应的单一参数设置方法,欢迎有经验的开发者补充说明。需要注意的是,hstack()的实际效果与concatenate()函数完全一致。


np.concatenate((a,b))
输出:
array([1, 2, 3, 4, 5, 6])

以上就是Python NumPy矩阵堆叠操作的完整介绍,旨在为读者提供实用的参考。希望这些内容能帮助大家更好地理解数组堆叠机制,如有更多疑问或建议,欢迎交流讨论。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。