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

numpy学习笔记2:ones = np.ones((2, 4)) 的详解

numpy学习笔记2:ones = np.ones((2, 4)) 的详解

np.ones() 是 NumPy 中用于创建全 1 数组的核心函数,其用法和参数与 np.zeros() 类似,但生成的数组元素值全部为 1。以下是详细解释:


1、语法

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

  • 参数

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

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

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


2、示例代码

import numpy as np# 创建一个 2x4 的全 1 数组,默认数据类型为 float
ones_array = np.ones((2, 4))
print(ones_array)

输出

[[1. 1. 1. 1.][1. 1. 1. 1.]]

3、参数详解

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

  • 一维数组

    np.ones(5)       # 输出:[1. 1. 1. 1. 1.]
    np.ones((5,))    # 推荐显式写法
  • 高维数组

    # 三维数组(形状为 2x3x4)
    np.ones((2, 3, 4))
2. 数据类型 dtype
  • 默认生成浮点数(float64),可通过 dtype 指定其他类型:

    # 生成整数类型的全 1 数组
    int_ones = np.ones((3, 2), dtype=int)
    print(int_ones)

    输出

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


4、返回数组的属性验证

ones_array = np.ones((2, 4))print("形状(shape):", ones_array.shape)  # 输出 (2, 4)
print("数据类型(dtype):", ones_array.dtype)  # 输出 float64
print("维度数(ndim):", ones_array.ndim)   # 输出 2(二维)
print("元素总数(size):", ones_array.size)  # 输出 8

5、应用场景

  1. 初始化基准值

    # 初始化神经网络权重(全 1 作为初始值)
    weights = np.ones((10, 5))  # 10 个神经元,5 个输入
  2. 模板生成

    # 创建掩模模板(全 1 表示保留区域)
    mask = np.ones((100, 100), dtype=bool)
    mask[20:80, 20:80] = False  # 中心区域设为 False
  3. 数值计算占位

    # 计算单位矩阵(利用全 1 数组)
    identity_matrix = np.ones((3, 3)) - np.eye(3)

6、常见问题

Q1:np.ones() 和 np.zeros() 的区别?
  • np.ones() 初始化为 1,np.zeros() 初始化为 0。其他参数和用法完全一致。

Q2:如何生成全 1 的布尔数组?
  • 设置 dtype=bool,但注意:1 在布尔类型中会转换为 True

    bool_ones = np.ones((2, 2), dtype=bool)
    print(bool_ones)

    输出

    [[ True  True][ True  True]]
Q3:为什么 shape=(2,4) 生成的是 2 行 4 列?
  • NumPy 遵循 (行, 列) 的约定,与数学中的矩阵表示一致。


7、对比其他函数

函数功能初始化值
np.ones()创建全 1 数组1
np.zeros()创建全 0 数组0
np.empty()创建未初始化数组随机值
np.full()创建全为指定值的数组自定义值

通过 np.ones(),你可以快速生成任意形状的全 1 数组,适用于初始化、模板生成等场景。


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

相关文章:

  • ASP4644四通道降压稳压器的工业高效电源管理方案
  • numpy学习笔记6:np.sin(a) 的详细解释
  • 卷积神经网络 - 卷积层
  • 日常用命令
  • JavaScript变量声明与DOM操作指南
  • 安全地自动重新启动 Windows 资源管理器Bat脚本
  • Unity 云渲染本地部署方案
  • LeetCode[142] 环形链表 II
  • JAVA中关于图形化界面的学习(GUI)动作监听,鼠标监听,键盘监听
  • 【Java】链表(LinkedList)(图文版)
  • Linux IP 配置
  • 利用大语言模型生成的合成数据训练YOLOv12:提升商业果园苹果检测的精度与效率
  • Spring相关面试题
  • numpy学习笔记1:zeros = np.zeros((3, 3)) 详解
  • 安装并使用anaconda(宏观版)
  • 库的制作与原理 linux第课
  • 企业级 GitLab 开发流程全解
  • dockerfile 编写入门
  • numpy学习笔记4:np.arange(0, 10, 2) 的详细解释
  • sparksql的Transformation与 Action操作