当前位置: 首页 > news >正文

NumPy zeros_like() 函数详解

请添加图片描述
在数据分析、机器学习与科学计算中经常需要创建一个与现有数组形状相同、但值全为零的新数组。
这时,NumPy 提供了一个非常方便的函数 —— numpy.zeros_like()

当想要一个“和现有数组一样大,但全是零”的数组时,记得用 zeros_like()

本文将深入介绍它的用法、参数、应用场景以及与 numpy.zeros() 的区别。


目录

    • 📘 一、函数简介
    • 🧩 二、参数详解
    • ⚙️ 三、基本用法示例
      • 示例 1:最简单的用法
      • 示例 2:指定数据类型
      • 示例 3:指定不同形状
      • 示例 4:处理多维数组
    • 🔍 四、与 `numpy.zeros()` 的区别
      • 示例对比:
    • ⚡ 五、性能分析
    • 🧱 六、实际应用场景
    • 🧭 七、总结


📘 一、函数简介

numpy.zeros_like() 是 NumPy 提供的一个用于创建零数组的函数。
它根据给定的数组(或类数组对象)创建一个形状、类型相同的新数组,但所有元素都被初始化为 0

numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)

官方文档介绍地址numpy.zeros_like

🧩 二、参数详解

参数名说明默认值
a用作模板的数组或类数组对象必填
dtype指定返回数组的数据类型默认为 a的数据类型
order内存布局方式:'C'(行优先)或 'F'(列优先)'K'(保持与 a一致)
subok若为 True,则子类保持原类型;否则返回 np.ndarrayTrue
shape可选,用于重新指定形状None

⚙️ 三、基本用法示例

示例 1:最简单的用法

import numpy as npa = np.array([[1, 2, 3], [4, 5, 6]])
b = np.zeros_like(a)print("原数组 a:\n", a)
print("zeros_like 生成的新数组 b:\n", b)

输出:

原数组 a:[[1 2 3][4 5 6]]
zeros_like 生成的新数组 b:[[0 0 0][0 0 0]]

会发现:

  • ba 的形状完全一致
  • 元素类型(dtype)也相同
  • 所有元素都为 0

示例 2:指定数据类型

b = np.zeros_like(a, dtype=float)
print(b)

输出:

[[0. 0. 0.][0. 0. 0.]]

✅ 小技巧:当希望创建一个浮点型零矩阵(如在神经网络中初始化权重),可以通过 dtype=float 实现。


示例 3:指定不同形状

b = np.zeros_like(a, shape=(3, 3))
print(b)

输出:

[[0 0 0][0 0 0][0 0 0]]

虽然参考了 a,但通过 shape 参数指定了一个新的形状 (3, 3)


示例 4:处理多维数组

tensor = np.arange(24).reshape(2, 3, 4)
zeros_tensor = np.zeros_like(tensor)print("原数组形状:", tensor.shape)
print("zeros_like 结果形状:", zeros_tensor.shape)

输出:

原数组形状: (2, 3, 4)
zeros_like 结果形状: (2, 3, 4)

💡 非常适合在深度学习中创建梯度矩阵缓存变量


🔍 四、与 numpy.zeros() 的区别

函数创建方式形状来源常用场景
numpy.zeros(shape)手动指定形状由参数提供创建全零数组
numpy.zeros_like(a)基于参考数组继承自数组 a创建相同结构的零数组

示例对比:

a = np.arange(6).reshape(2, 3)
z1 = np.zeros((2, 3))
z2 = np.zeros_like(a)print(z1)
print(z2)

输出结果相同,但 z2 的创建过程更简洁,更安全(不易出错)。


⚡ 五、性能分析

import numpy as np
import timea = np.random.rand(1000, 1000)# zeros
start = time.time()
z1 = np.zeros(a.shape)
print("zeros 耗时:", time.time() - start)# zeros_like
start = time.time()
z2 = np.zeros_like(a)
print("zeros_like 耗时:", time.time() - start)

两者性能非常接近,但 zeros_like() 避免了显式指定形状,代码更简洁、更可维护。


🧱 六、实际应用场景

  1. 矩阵运算初始化
result = np.zeros_like(matrix)
  1. 神经网络梯度缓存
grad_W = np.zeros_like(weights)
  1. 掩码操作或图像处理
mask = np.zeros_like(image, dtype=bool)
  1. 科学计算的占位符数组
temp = np.zeros_like(data, dtype=float)

🧭 七、总结

特性zeros_like()
功能创建一个与给定数组形状和类型相同的零数组
优点简洁、安全、自动继承 dtype 与 shape
常见用途初始化、占位、缓存矩阵、图像掩码
http://www.dtcms.com/a/490501.html

相关文章:

  • 网站建设要后台吗公司网页制作哪家好
  • 天津网站建设优化网页设计图片代码
  • CXR SDK实战指南:跨设备AR应用开发
  • 已知明文攻击(Known plaintext):原理、方法与防御体系深度剖析
  • ​SPI四种工作模式
  • 深度学习------YOLOV1和YOLOV2
  • 最小二乘问题详解5:非线性最小二乘求解实例
  • 算法入门数学基础
  • 错误边界:用componentDidCatch筑起React崩溃防火墙
  • 网站备案提交管局原创软文
  • 成都比较好的网站建设公司视频制作和剪辑软件
  • 如何从电脑上卸载安卓应用程序
  • 每日手撕算法--哈希映射/链表存储数求和
  • k8s的pvc和pv
  • RK3562核心板/开发板RT-Linux系统实时性及硬件中断延迟测试
  • node.js把webp,gif格式图片转换成jpg格式图片
  • 不能识别adb/usb口记录
  • SpringBoot-常用注解
  • 支付商城网站制作软件开发报价表
  • wordpress类似的平台快速优化排名公司推荐
  • Git 基础操作指南
  • 网站给部分文字做遮挡代码wordpress主题仿逛丢
  • 【bug】大模型微调bug:OSError: Failed to load tokenizer.| Lora
  • 视频生成的背后机理:Wan2技术报告分析
  • 有什么做衣服的网站吗天津市建筑信息平台
  • HTB BoardLight writeup(enlightenment 0.23.1 exploit)
  • 唐山网站搭建平台制作计划
  • 智能体面试题:ReAct框架 是什么
  • 泰山派rk3566 wifi基础知识
  • 【无标题】大模型-AIGC技术在文本生成与音频生成领域的应用