怎么构建一个空numpy数组,之后不断为它append行
时间: 2024-03-03 15:51:49 浏览: 27
在`numpy`中,不建议使用`append`函数来构建数组,因为每次`append`操作都会生成一个新的数组,非常耗费时间和内存。相反,我们可以先创建一个空的`numpy`数组,然后在其上添加新的行或列。这里介绍两种创建空数组的方法。
1. 使用`numpy.zeros`函数创建一个全零数组,然后不断在其上添加新的行。示例代码如下:
```python
import numpy as np
# 定义数组的列数
n = 3
# 创建空数组
a = np.zeros((0, n))
# 添加新的行
new_row = [1, 2, 3]
a = np.vstack([a, new_row])
print(a)
new_row = [4, 5, 6]
a = np.vstack([a, new_row])
print(a)
# 输出结果
# [[1. 2. 3.]]
# [[1. 2. 3.]
# [4. 5. 6.]]
```
2. 使用`numpy.empty`函数创建一个未初始化的空数组,然后不断在其上添加新的行。示例代码如下:
```python
import numpy as np
# 定义数组的列数
n = 3
# 创建空数组
a = np.empty((0, n))
# 添加新的行
new_row = [1, 2, 3]
a = np.vstack([a, new_row])
print(a)
new_row = [4, 5, 6]
a = np.vstack([a, new_row])
print(a)
# 输出结果
# [[1. 2. 3.]]
# [[1. 2. 3.]
# [4. 5. 6.]]
```
需要注意的是,由于使用`empty`函数创建的数组未被初始化,其元素值是随机的,因此需要在添加新行之前先对数组进行初始化,或者使用`zeros`函数创建全零数组。