使用numpy.append时会自动变成一维是为什么
时间: 2023-12-30 17:06:17 浏览: 219
使用 `numpy.append()` 函数向数组中添加元素时,如果添加的元素是一个一维数组,那么添加后的结果确实会变成一维数组,这是因为 `numpy.append()` 函数会将传入的数组展平成一维数组,然后再添加元素。具体来说,`numpy.append()` 函数会将原始数组和要添加的元素都展平成一维数组,然后将两个一维数组拼接在一起,最终返回一个新的一维数组。
举个例子,假设有一个二维数组 `a`,其形状为 `(2, 3)`,内容为:
```
array([[1, 2, 3],
[4, 5, 6]])
```
现在我们想向这个数组的末尾添加一行 `[7, 8, 9]`,可以使用以下代码:
```python
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([7, 8, 9])
c = np.append(a, b, axis=0)
print(c)
```
输出结果为:
```
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
```
可以看到,最终的结果是一个一维数组,而不是原来的二维数组。如果想要保持原来的二维数组形状,可以将要添加的元素也变成一个二维数组,例如:
```python
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9]])
c = np.append(a, b, axis=0)
print(c)
```
输出结果为:
```
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
```
这样就得到了一个形状为 `(3, 3)` 的新数组,保持了原来的二维形状。
阅读全文