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

numpy学习笔记1:zeros = np.zeros((3, 3)) 详解

numpy学习笔记1:zeros = np.zeros((3, 3)) 详解

np.zeros() 是 NumPy 中用于创建全零数组的核心函数,下面详细解释其用法和参数:


1、np.zeros() 语法

numpy.zeros(shape, dtype=float, order='C')
  • 作用:生成一个指定形状和数据类型的全零数组。

  • 参数

    • shape:数组的形状,以元组形式传递(如 (3,3) 表示 3 行 3 列的二维数组)。

    • dtype(可选):数组的数据类型,默认为 float(浮点数)。

    • order(可选):内存存储顺序,一般无需修改('C' 表示行优先,'F' 表示列优先)。


2、np.zeros() 示例代码

import numpy as np

# 创建一个 3x3 的全零数组,默认数据类型为 float
zeros_array = np.zeros((3, 3))
print(zeros_array)

输出

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

3、参数详解

1. 形状参数 shape
  • 必须是一个元组,表示数组的维度。

  • 单维度数组(5,) 生成一个长度为 5 的一维数组:

    np.zeros((5,))  # 输出:[0. 0. 0. 0. 0.]
  • 高维数组:例如 (2,3,4) 生成一个 2x3x4 的三维数组。

2. 数据类型 dtype
  • 默认生成浮点数(float64),可通过 dtype 指定其他类型:

    # 生成整数类型的全零数组
    int_zeros = np.zeros((2, 2), dtype=int)
    print(int_zeros)

    输出

    [[0 0]
     [0 0]]
3. 存储顺序 order
  • 一般保持默认 'C'(行优先存储),适用于大多数场景。'F' 表示列优先(类似 MATLAB)。


4、返回数组的属性验证

zeros_array = np.zeros((3, 3))

print("形状(shape):", zeros_array.shape)  # 输出 (3, 3)
print("数据类型(dtype):", zeros_array.dtype)  # 输出 float64
print("维度数(ndim):", zeros_array.ndim)   # 输出 2(二维)
print("元素总数(size):", zeros_array.size)  # 输出 9

5、应用场景

  1. 初始化数组:在需要后续填充数据时,先创建全零占位。

    data = np.zeros((100, 100))  # 预分配内存
    data[10:20, 30:40] = 1      # 后续填充数据
  2. 算法中的基准值:如迭代计算时初始化参数。

  3. 掩模或模板:与其他数组配合使用(如图像处理中的黑底模板)。


6、常见问题

Q1:为什么 shape 要用元组?
  • 元组能明确区分多维形状。例如 (3,3) 表示二维,而直接写 3,3 可能被误解为多个参数。

Q2:如何生成全零的一维数组?
  • 使用 (N,) 的元组形式:

    np.zeros(5)       # 正确,但隐式转为元组 (5,)
    np.zeros((5,))    # 显式推荐写法
Q3:与 np.empty() 的区别?
  • np.zeros() 会初始化所有元素为 0,而 np.empty() 只分配内存但不初始化(元素值为内存残留值)。


通过 np.zeros(),你可以快速创建任意形状的全零数组,这是科学计算中初始化数据的常用方法!

相关文章:

  • 脚本一键式启动Nginx、Mysql、Redis
  • C语言每日一练——day_11
  • 性能测试之grafana展示jmeter测试指标与主机监控
  • DApp用户激励机制设计:从代币经济到行为心理学的深度解构
  • Oracle常见系统函数
  • C# 中泛型(Generics)‌的核心概念
  • C# 事件(Event)核心概念
  • JVM的垃圾回收器都有哪些?
  • 尚硅谷爬虫(解析_xpath的基本使用)笔记
  • 《算法笔记》9.2小节——数据结构专题(2)->二叉树的遍历 问题 A: 复原二叉树(同问题 C: 二叉树遍历)
  • 小程序电子画册制作,用户体验为王!
  • 【多线程】线程不安全问题
  • 每日学习Java之一万个为什么(待补充)
  • Web Component 教程(四):如何优雅的使用 template 模块
  • springboot集成xxl-job
  • 使用 libmodbus 实现 Modbus 通信
  • linux 出现网卡 down 没起来 怎么办 ? 已解决
  • C/C++编程:Openssl使用 Windows安装包32和64位 RSA加密/解密、AES-GCM加密/解密以及ECDSA签名/验证示例
  • C/C++蓝桥杯算法真题打卡(Day8)
  • 虚幻基础:组件组件通信
  • 外媒称菲方允许菲官员窜台,国台办:应停止在台湾问题上玩火
  • 打造沪派水乡的“湿意”,上海正在保护营造一批湿地空间
  • 郭继孚被撤销全国政协委员资格,此前为北京交通发展研究院长
  • 打造全域消费场景,上海大世界百个演艺娱乐新物种待孵化
  • AI观察|算力饥渴与泡沫
  • 吉林省公安厅出入境管理总队政委明志全已任省安保集团总经理