Python如何创建二维数组
时间: 2025-06-05 15:39:50 浏览: 19
### Python 中创建二维数组的方法
在 Python 中,可以通过多种方式来创建二维数组。以下是常见的三种方法及其特点:
#### 方法一:使用嵌套列表
最简单的方式是通过嵌套列表手动定义二维数组。这种方式适合小型项目或者临时性的数据存储需求。
```python
test = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
print(test)
```
这种方法的优点是直观易懂,缺点是在处理大规模数据时效率较低[^1]。
另一种更灵活的生成方式是使用列表推导式。例如,要创建一个 m 行 n 列的二维数组,可以这样做:
```python
m, n = 3, 4
test = [[0 for _ in range(n)] for _ in range(m)]
print(test)
```
需要注意的是,直接复制列表可能会导致意外行为。例如下面的例子展示了浅拷贝带来的问题:
```python
a = [[]] * 3
a[0].append(1)
print(a) # 输出为 [[1], [1], [1]], 不符合预期
```
为了避免这种错误,应该采用深拷贝的方式来初始化每一行。
---
#### 方法二:使用 NumPy 库
NumPy 是 Python 科学计算的核心库之一,提供了强大的多维数组支持。相比于原生列表,NumPy 数组具有更高的性能和更多的功能。
##### 使用 `np.array()` 构造二维数组
可以直接从现有的嵌套列表转换成 NumPy 数组:
```python
import numpy as np
data = [[1, 2, 3], [4, 5, 6]]
array_data = np.array(data)
print(array_data)
```
##### 使用 `np.zeros()`, `np.ones()`, 或其他函数快速构建固定大小的数组
这些函数允许我们方便地创建填充了零、一或者其他特定值的二维数组。
```python
rows, cols = 3, 4
zeros_array = np.zeros((rows, cols), dtype=int)
ones_array = np.ones((rows, cols), dtype=float)
print(zeros_array)
print(ones_array)
```
还可以自定义初始值:
```python
custom_value_array = np.full((rows, cols), fill_value=-1, dtype=int)
print(custom_value_array)
```
注意查看数组形状是否满足要求:
```python
print('Shape of zeros_array:', zeros_array.shape) # 结果应该是 (3, 4)
```
此方法非常适合需要高效数值运算的应用场景[^2]^。
---
#### 方法三:矩阵(Matrix)
尽管 NumPy 提供了一个专门用于表示矩阵的对象——`matrix` 类型,但由于它已经被标记为过时,并推荐改用普通的 `ndarray` 来完成相同的操作[^3],因此一般不再单独讨论 matrix 的应用。
不过为了完整性提一下它的基本用法:
```python
from numpy import matlib
mat = matlib.matrix([[1, 2], [3, 4]])
print(mat)
```
---
### 总结
- 如果只是简单的程序开发或学习阶段,可以选择基于标准库的 **嵌套列表**。
- 当涉及到大量数据处理、科学计算等领域,则强烈建议选用 **NumPy** 工具集。
- 尽量避免旧版遗留下来的专用类如 Matrix ,除非特殊历史原因必须兼容老代码。
阅读全文
相关推荐


















