信阳市文章资讯

NumPy zeros()函数使用小结

2026-03-26 08:45:01 浏览次数:3
详细信息

NumPy 的 zeros() 函数用于创建指定形状和数据类型、元素全为 0 的数组。以下是详细的使用总结:

1. 基本语法

numpy.zeros(shape, dtype=float, order='C', *, like=None)

2. 主要参数

shape

dtype

order

like

3. 实用示例

创建不同形状的零数组

import numpy as np

# 一维
arr1 = np.zeros(5)  # [0., 0., 0., 0., 0.]

# 二维(矩阵)
arr2 = np.zeros((3, 4))
# [[0., 0., 0., 0.],
#  [0., 0., 0., 0.],
#  [0., 0., 0., 0.]]

# 三维
arr3 = np.zeros((2, 2, 3))

指定数据类型

# 整数零数组
int_zeros = np.zeros(3, dtype=np.int32)  # [0, 0, 0]

# 复数零数组
complex_zeros = np.zeros(2, dtype=complex)  # [0.+0.j, 0.+0.j]

# 布尔零数组(全False)
bool_zeros = np.zeros(3, dtype=bool)  # [False, False, False]

创建结构化数组

# 创建带有字段名的结构化零数组
dt = np.dtype([('x', 'f4'), ('y', 'f4'), ('z', 'f4')])
struct_zeros = np.zeros(3, dtype=dt)
# [(0., 0., 0.), (0., 0., 0.), (0., 0., 0.)]

4. 实际应用场景

初始化权重矩阵

weights = np.zeros((10, 5))  # 神经网络权重初始化

创建掩码/模板

mask = np.zeros((100, 100), dtype=bool)  # 全False的掩码
mask[10:20, 30:40] = True               # 设置特定区域为True

占位数组

# 预先分配内存空间,稍后填充数据
result = np.zeros((1000, 1000))
# ... 后续计算填充数据

基准测试

# 测试数组操作性能
arr = np.zeros((1000, 1000))
%timeit arr + 1  # 测试加法运算时间

5. 与其他创建函数对比

函数 用途 特点
zeros() 创建全0数组 元素为0
ones() 创建全1数组 元素为1
empty() 创建未初始化数组 最快,内容随机
full() 创建填充指定值的数组 可指定任意填充值

6. 注意事项

内存效率zeros()empty() + 赋值慢,但能确保数据确定性 默认类型:默认 float64,可能占用较大内存,可根据需要调整 多维形状:传递元组 (a, b, c) 而不是多个参数 zeros_like() 区别
arr = np.array([[1, 2], [3, 4]])
# zeros 需要指定形状
z1 = np.zeros(arr.shape, dtype=arr.dtype)
# zeros_like 自动复制形状和类型
z2 = np.zeros_like(arr)

7. 性能提示

这个函数在机器学习和科学计算中非常常用,特别是在需要初始化参数或创建基准数组时。

相关推荐