当前位置: 首页 > 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(),你可以快速创建任意形状的全零数组,这是科学计算中初始化数据的常用方法!


http://www.mrgr.cn/news/95005.html

相关文章:

  • 安装并使用anaconda(宏观版)
  • 库的制作与原理 linux第课
  • 企业级 GitLab 开发流程全解
  • dockerfile 编写入门
  • numpy学习笔记4:np.arange(0, 10, 2) 的详细解释
  • sparksql的Transformation与 Action操作
  • 浏览器工作原理深度解析(阶段二):HTML 解析与 DOM 树构建
  • 【二分查找】模板题:在排序数组中查找元素的第一个和最后一个位置
  • React生命周期
  • 可视化图解算法:链表中倒数(最后)k个结点
  • java-正则表达式-集合-泛型
  • 【数据库】SQL设计指南:如何编写性能优异的SQL
  • el-table的行向上移动向下移动,删除选定行
  • Diffie-Hellman 加密协议介绍 (DH,DHE,ECDHE)
  • docker(1) -- centos镜像
  • CAN及CANFD协议
  • 使用 Promise 和 .then() 解决同异步问题
  • Optiplex 3060 MT 电脑型号与尺寸
  • Qwen2.5-VL 开源视觉大模型,模型体验、下载、推理、微调、部署实战
  • C++基础: Rule of five/zero/three