np.zeros函数


np.zeros 是 NumPy 库中的一个非常常用的函数,它的作用是创建一个指定形状和数据类型的新数组,并用 0 来填充所有元素。

np.zeros 的基本用法

函数的完整签名是 numpy.zeros(shape, dtype=float, order='C')

  • shape:你想要创建的数组的形状。可以是一个整数(用于一维数组)或一个元组(用于多维数组)。
  • dtype:数组中元素的数据类型。默认是 float64(浮点型)。
  • order:可选参数,用于指定数组在内存中的存储顺序。

示例 1:创建一维数组

import numpy as np

# 创建一个包含 5 个 0 的一维数组
arr1d = np.zeros(5)
print(arr1d)
# 输出: [0. 0. 0. 0. 0.]

示例 2:创建二维数组

# 创建一个 2x3 的二维数组
arr2d = np.zeros((2, 3))
print(arr2d)
# 输出:
# [[0. 0. 0.]
#  [0. 0. 0.]]

示例 3:指定数据类型

如果你需要整数类型的 0,可以指定 dtype=int

# 创建一个 3x3 的整数数组
arr_int = np.zeros((3, 3), dtype=int)
print(arr_int)
# 输出:
# [[0 0 0]
#  [0 0 0]
#  [0 0 0]]

np.zeros 的应用场景

  1. 初始化数组:在许多科学计算和机器学习任务中,我们经常需要创建一个空的或初始值为 0 的数组,然后在后面的代码中填充或修改它。np.zeros 是实现这一点的最简单、最高效的方法。
  2. 独热编码:在独热编码中,如果你想手动实现,你可以先创建一个全零的数组,然后将对应类别位置的元素设置为 1。
    # 假设标签为 2,总类别数为 10
    label = 2
    num_classes = 10
    
    # 创建一个长度为 10 的全零数组
    one_hot_label = np.zeros(num_classes)
    
    # 将索引为 2 的位置设置为 1
    one_hot_label[label] = 1
    
    print(one_hot_label)
    # 输出: [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
    
  3. 占位符:在构建复杂的数据处理流程时,np.zeros 经常被用作一个占位符,以确保内存空间在开始时就被分配好。

与 np.empty() 和 np.ones() 的区别

  • np.ones(shape):创建一个填充了 1 的数组。
  • np.empty(shape):创建一个指定形状的数组,但其中的元素是未初始化的(即随机的、内存中已有的值),它的速度比 np.zeros 稍快,因为它不需要将所有元素都设置为 0。但它的值是不可预测的,所以除非你确定会马上覆盖所有元素,否则不推荐使用。

总而言之,np.zeros 是一个用于初始化数组的强大且安全的工具,它确保了你创建的数组的所有元素都从 0 开始。

posted @ 2025-09-14 23:08  李大嘟嘟  阅读(18)  评论(0)    收藏  举报