• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    python中np.zeros_like函数用法详解

    发布者: Error | 发布时间: 2025-6-17 08:07| 查看数: 118| 评论数: 0|帖子模式

    前言
    1. np.zeros_like
    复制代码
    是 NumPy 库中的一个函数,用于创建一个与给定数组具有相同形状和类型的数组,并将所有元素初始化为 0。

    语法:
    1. np.zeros_like(a, dtype=None, order='K', subok=True)
    复制代码
    参数:


    • a:输入的数组。新的数组将具有与
      1. a
      复制代码
      相同的形状和类型。
    • dtype(可选):指定返回数组的数据类型。如果没有指定,默认为输入数组
      1. a
      复制代码
      的数据类型。
    • order(可选):指定返回数组的内存布局,
      1. 'C'
      复制代码
      为行主序(C-style),
      1. 'F'
      复制代码
      为列主序(Fortran-style)。默认为
      1. 'K'
      复制代码
      ,意味着返回数组的内存布局尽量与输入数组一致。
    • subok(可选):如果为
      1. True
      复制代码
      ,返回的数组将保持子类的类型。如果为
      1. False
      复制代码
      ,则返回的数组是
      1. ndarray
      复制代码
      类型。默认值为
      1. True
      复制代码


    返回值:

    返回一个具有与输入数组相同形状和类型的新数组,且数组的所有元素都初始化为 0。

    使用示例:


    1. 创建与现有数组相同形状的零数组
    1. import numpy as np

    2. # 创建一个原始数组
    3. arr = np.array([[1, 2, 3], [4, 5, 6]])

    4. # 使用 np.zeros_like 创建一个与 arr 形状相同的零数组
    5. arr_zeros = np.zeros_like(arr)

    6. print(arr_zeros)
    7. # 输出:
    8. # [[0 0 0]
    9. #  [0 0 0]]
    复制代码
    在这个例子中,
    1. arr_zeros
    复制代码
    是一个与
    1. arr
    复制代码
    形状相同的数组,且所有元素都初始化为 0。

    2. 指定数据类型 dtype

    你可以指定新数组的数据类型,而不必依赖输入数组的类型。例如,如果你希望返回一个浮点类型的数组:
    1. arr_zeros_float = np.zeros_like(arr, dtype=float)

    2. print(arr_zeros_float)
    3. # 输出:
    4. # [[0. 0. 0.]
    5. #  [0. 0. 0.]]
    复制代码
    这里,返回的数组类型是
    1. float
    复制代码
    ,即使原数组
    1. arr
    复制代码
    的元素是整数类型。

    3. 与 np.zeros() 的比较
    1. np.zeros_like()
    复制代码
    1. np.zeros()
    复制代码
    相似,但是
    1. np.zeros_like()
    复制代码
    会根据现有数组的形状和类型创建零数组,而
    1. np.zeros()
    复制代码
    需要显式指定形状。
    1. # 使用 np.zeros 创建一个 2x3 的零数组
    2. arr_zeros_manual = np.zeros((2, 3))

    3. # 使用 np.zeros_like 根据 arr 创建一个零数组
    4. arr_zeros_like = np.zeros_like(arr)

    5. print(np.array_equal(arr_zeros_manual, arr_zeros_like))  # 输出: True
    复制代码
    两者都创建了形状为
    1. (2, 3)
    复制代码
    的零数组,但
    1. np.zeros_like()
    复制代码
    根据现有数组
    1. arr
    复制代码
    的形状和类型自动生成零数组。

    4. 指定内存布局

    通过
    1. order
    复制代码
    参数,你可以指定返回数组的内存布局。默认情况下,
    1. np.zeros_like()
    复制代码
    会使用
    1. 'K'
    复制代码
    ,即尽量与输入数组一致,但你也可以指定为
    1. 'C'
    复制代码
    1. 'F'
    复制代码
    1. arr_zeros_c = np.zeros_like(arr, order='C')  # 使用行主序
    2. arr_zeros_f = np.zeros_like(arr, order='F')  # 使用列主序

    3. print(arr_zeros_c.flags['C_CONTIGUOUS'])  # 输出: True,表示是 C-style 存储
    4. print(arr_zeros_f.flags['F_CONTIGUOUS'])  # 输出: True,表示是 Fortran-style 存储
    复制代码
    5. 与 np.zeros() 的区别
    1. np.zeros()
    复制代码
    用于根据给定形状创建零数组,而
    1. np.zeros_like()
    复制代码
    用于创建一个形状和数据类型与现有数组相同的零数组。
    1. np.zeros_like()
    复制代码
    1. np.zeros()
    复制代码
    更加灵活,因为它能够继承现有数组的形状和类型,而不需要你重新指定。

    总结:


      1. np.zeros_like(a)
      复制代码
      :创建一个与
      1. a
      复制代码
      形状和数据类型相同的零数组。
    • 可选参数
      1. dtype
      复制代码
      可以指定返回数组的数据类型。
      1. order
      复制代码
      控制返回数组的内存布局(默认为
      1. K
      复制代码
      )。
    • 它通常用于在现有数组的基础上创建零数组,特别是在需要保证形状和类型一致时。
    这种方法非常适合在进行数组计算时初始化一个与其他数组具有相同形状的零数组。
    到此这篇关于python中np.zeros_like函数用法详解的文章就介绍到这了,更多相关python np.zeros_like函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/python/339646nzg.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表