np.concatenate和vstack什么区别
时间: 2024-05-04 13:16:47 浏览: 121
谈一谈数组拼接tf.concat()和np.concatenate()的区别
`np.concatenate` 和 `np.vstack` 都是用于数组的拼接,但是有一些区别。
`np.concatenate` 可以在任何维度上进行拼接,而 `np.vstack` 只能在垂直方向上拼接(即沿着第0轴或行的方向)。此外,`np.concatenate` 还可以通过指定 `axis` 参数来控制拼接的轴。
下面是一个简单的例子:
```python
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
# concatenate along rows
c = np.concatenate((a, b), axis=0)
print(c)
# [[1 2]
# [3 4]
# [5 6]]
# vstack
d = np.vstack((a, b))
print(d)
# [[1 2]
# [3 4]
# [5 6]]
```
可以看到,在这个例子中,`np.concatenate` 和 `np.vstack` 的输出结果是相同的,因为它们都是在垂直方向上拼接的。但是,如果我们要在水平方向上拼接,那么只能使用 `np.concatenate`:
```python
a = np.array([[1, 2], [3, 4]])
b = np.array([[5], [6]])
# concatenate along columns
c = np.concatenate((a, b), axis=1)
print(c)
# [[1 2 5]
# [3 4 6]]
```
在这个例子中,我们无法使用 `np.vstack` 进行拼接,因为它只能在垂直方向上拼接。
阅读全文