hstack ,vstack
时间: 2023-10-23 11:18:51 浏览: 42
`hstack` 和 `vstack` 是 NumPy 中的函数,用于水平(horizontal)和垂直(vertical)方向上的数组拼接。
`hstack` 函数将多个数组按水平方向堆叠在一起,即将它们沿着第二个轴(列方向)拼接起来。例如,假设我们有两个形状为 (3, 2) 的数组 `a` 和 `b`,可以使用 `hstack` 函数将它们水平拼接:
```python
import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
b = np.array([[7, 8], [9, 10], [11, 12]])
c = np.hstack((a, b))
print(c)
# 输出:
# [[ 1 2 7 8]
# [ 3 4 9 10]
# [ 5 6 11 12]]
```
`vstack` 函数将多个数组按垂直方向堆叠在一起,即将它们沿着第一个轴(行方向)拼接起来。例如,假设我们有两个形状为 (2, 3) 的数组 `a` 和 `b`,可以使用 `vstack` 函数将它们垂直拼接:
```python
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9], [10, 11, 12]])
c = np.vstack((a, b))
print(c)
# 输出:
# [[ 1 2 3]
# [ 4 5 6]
# [ 7 8 9]
# [10 11 12]]
```
需要注意的是,拼接的数组的维度必须相同,除了沿着拼接方向的那个维度之外。在上面的例子中,`a` 和 `b` 的第二个维度(列数)相同,所以可以使用 `hstack` 拼接它们;`a` 和 `b` 的第一个维度(行数)相同,所以可以使用 `vstack` 拼接它们。如果维度不相同,会引发 `ValueError` 异常。