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

Python-numpy中ndarray对象创建,数据类型,基本属性

numpy库

  • numpy中的数据结构
  • ndarray
    • ndarray中的dtype
    • ndarray中的dtype的指定方式
    • 创建ndarray及指定dtype
      • 从列表创建ndarray
      • 使用 np.empty(), np.zeros(), np.ones() 和 np.full() 创建特定值的数组
      • 使用 np.arange() 创建等差数列数组
      • 使用 np.linspace() 创建等差数组
      • 使用np.logspace()创建等比数组
      • 使用np.random创建随机数组
        • 创建均匀分布的数组
        • 创建正态分布的数组
        • 生成随机整数
        • 随机选择元素
        • 创建单位阵
    • ndarray的基本属性

numpy是 Python 中用于科学计算的基础库,它提供了高性能的多维数组对象和处理这些数组的工具。

numpy中的数据结构

  • 🍒 ndarray(N-dimensional array),核心数据结构
  • 🍒 结构化数组(Structured Arrays)
  • 🍒 记录数组(Record Arrays)
  • 🍒 掩码数组(Masked Arrays)

ndarray

  • 🍒 同质性:数组中的所有元素必须是相同的数据类型,例如整数、浮点数等。
  • 🍒 多维性:可以表示一维、二维、三维甚至更高维度的数组。
  • 🍒 高效性:基于连续的内存块存储数据,因此在数值计算方面性能优越。

ndarray中的dtype

  • 🍒 dtype(data type,即数据类型)是一个关键概念,它定义了 ndarray 数组中元素的数据类型。
  • 🍒 借助 dtype,你能够精准控制数组所占用的内存空间,还能提升计算效率。
  • 🍒 可以在创建ndarray时指定dtype
  • 🍒 可以在后面用astype指定,astype并不直接改变原ndarray数据的类型,它会生成新的ndarray。
    在这里插入图片描述

ndarray中的dtype的指定方式

  • 🍒 字符串: “i1”, "int8"等。
  • 🍒 np.int16等。

创建ndarray及指定dtype

从列表创建ndarray

  • 🍒 np.array(list), 一维或者多维均可。
  • 🍒 np.fromiter(iter), 适合大批量数据的处理。
code:
import numpy as np
nd_list = np.array([1, 2, 3, 4, 5, 6], dtype=np.float32)
nd_list_1 = nd_list.astype("int64")  # 使用astype重新指定数据类型
print("-------------------- list创建ndarray --------------------")
print("%s: class: %s, dtype: %s, shape: %s, data: %s" 
% ("nd_list", type(nd_list), nd_list.dtype, nd_list.shape, nd_list))
print("%s: class: %s, dtype: %s, shape: %s, data: %s"% ("nd_list_1", type(nd_list_1), nd_list_1.dtype, nd_list_1.shape, nd_list_1))result:
nd_list: class: <class 'numpy.ndarray'>, dtype: float32, shape: (6,), data: [1. 2. 3. 4. 5. 6.]
nd_list_1: class: <class 'numpy.ndarray'>, dtype: int64, shape: (6,), data: [1 2 3 4 5 6]

使用 np.empty(), np.zeros(), np.ones() 和 np.full() 创建特定值的数组

  • 🍇 np.zeros_like, np.ones_like, np.full_like创建一个与给定的数组维度和数类型相同,并以0或者1或者指定的数据填充的数组。
  • 🍇 np.empty()用于创建指定形状和数据类型的数组,但不会对数组元素进行初始化,数组中的元素是未初始化的随机值,这些值取决于内存中该位置之前存储的内容。
  • 🍇 np.empty_like用于创建一个与指定数组具有相同维度和相同数据类型且未初始化的数组。
code:
import numpy as np
nd_0 = np.zeros(shape=(2, 3), dtype="int16")  # # 在创建时指定dtype, "int16"指明类型
print("-------------------- np.zeros, np.ones, np.full 创建ndarray --------------------")
print("%s: class: %s, dtype: %s, shape: %s, data: %s" % ("nd_0", type(nd_0), nd_0.dtype, nd_0.shape, nd_0))
nd_1 = np.ones(shape=(3, 1), dtype="i1")  # 在创建时指定dtype, "i1"指明类型为int8
print("%s: class: %s, dtype: %s, shape: %s, data: %s" % ("nd_1", type(nd_1), nd_1.dtype, nd_1.shape, nd_1))
nd_full = np.full(shape=(2, 1), fill_value=168, dtype=np.int16)  # fill_value为要填充的数据, np.int16指明数据类型
print("%s: class: %s, dtype: %s, shape: %s, data: %s" % ("nd_full", type(nd_full), nd_full.dtype, nd_full.shape, nd_full))result:
-------------------- np.zeros, np.ones, np.full 创建ndarray --------------------
nd_0: class: <class 'numpy.ndarray'>, dtype: int16, shape: (2, 3), data: [[0 0 0][0 0 0]]
nd_1: class: <class 'numpy.ndarray'>, dtype: int8, shape: (3, 1), data: [[1][1][1]]
nd_full: class: <class 'numpy.ndarray'>, dtype: int16, shape: (2, 1), data: [[168][168]]

使用 np.arange() 创建等差数列数组

  • 🍆 numpy.arange([start, ]stop, [step, ], dtype=None)。
  • 🍆 整数和小数都可。
  • 🍆 numpy.asarray与其类似。
code:
import numpy as np
nd_arr = np.arange(start=0.1, stop=0.5, step=0.1, dtype=np.float16)
print("-------------------- np.arange() 创建等差数列数组 --------------------")
print("%s: class: %s, dtype: %s, shape: %s, data: %s" % ("nd_arr", type(nd_arr), nd_arr.dtype, nd_arr.shape, nd_arr))result:
-------------------- np.arange() 创建等差数列数组 --------------------
nd_arr: class: <class 'numpy.ndarray'>, dtype: float16, shape: (4,), data: [0.1    0.2    0.2998 0.4   ]

使用 np.linspace() 创建等差数组

  • 🌽 np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
  • 🌽 num: 指定元素的个数。
  • 🌽 endpoint: 指定是否把stop的参数作为最后一个元素。
  • 🌽 retstep设置为 True 时,函数除了返回生成的序列外,还会返回样本之间的间距。
code:
import numpy as np
nd_ls, step = np.linspace(start=0.5, stop=5, num=10, endpoint=True, retstep=True, dtype="f2")
print("-------------------- np.linspace() 创建等差数列数组 --------------------")
print("%s: class: %s, dtype: %s, shape: %s, data: %s" % ("nd_arr", type(nd_ls), nd_ls.dtype, nd_ls.shape, nd_ls))
print("step: %f" % step)result:
-------------------- np.linspace() 创建等差数列数组 --------------------
nd_arr: class: <class 'numpy.ndarray'>, dtype: float16, shape: (10,), data: [0.5 1.  1.5 2.  2.5 3.  3.5 4.  4.5 5. ]
step: 0.500000

使用np.logspace()创建等比数组

  • 🥦 numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)
  • 🥦 num: 指定元素的个数。
  • 🥦 endpoint: 指定是否把stop的参数作为最后一个元素。
  • 🥦 base: 指定等比数列的公比,默认值为 10.0

使用np.random创建随机数组

创建均匀分布的数组
  • 🍄 numpy.random.rand(d0, d1, …, dn), 生成指定形状的随机数据,数组元素是在 [0, 1) 区间内均匀分布的随机浮点数。
code:
import numpy as np
nd1 = np.random.rand(3, 2)
print("shape: %s, data: %s" % (nd1.shape, nd1))result:
shape: (3, 2), data: [[0.35805948 0.04036108][0.31759615 0.63327184][0.6510774  0.60556358]]
  • 🍄 numpy.random.uniform(low=0.0, high=1.0, size=None)。指定随机数的取值范围,创建在指定区间内均匀分布的随机数组。
code:
import numpy as np
uniform_arr = np.random.uniform(1, 5, (2, 3))
print("-------------------- np.random.uniform 创建矩阵 --------------------")
print(uniform_arr)result:
-------------------- np.random.uniform 创建矩阵 --------------------
[[4.64121004 3.59098984 4.8255174 ][2.66992313 2.69148975 4.1177286 ]]
创建正态分布的数组
  • 🍄 np.random.randn():创建数组,数组元素服从标准正态分布(均值为 0,标准差为 1)。
  • 🍄 randn(d0, d1, …, dn), 可指定形状。
  • 🍄 np.random.normal():可以指定均值和标准差,创建服从指定正态分布的随机数数组。
code:
import numpy as np
# 使用 np.random.randn() 创建二维数组
randn_arr = np.random.randn(2, 2)
print("使用 np.random.randn() 创建数组")
print(randn_arr)# 使用 np.random.normal() 创建一维数组,均值为 2,标准差为 0.5
normal_arr = np.random.normal(loc=2, scale=0.5, size=(2, 2))
print("\n使用 np.random.normal() 创建数组")
print(normal_arr)result:
使用 np.random.randn() 创建数组
[[ 2.2055985  -0.25213918][ 0.39241543 -0.54152386]]使用 np.random.normal() 创建数组
[[1.664472   2.1370329 ][2.00500439 1.44690644]]
生成随机整数
  • 🍄 np.random.randint():创建指定形状的数组,数组元素是在指定范围内的随机整数。
code:
import numpy as np
# 创建二维数组,元素取值范围在 [1, 10)
randint_arr = np.random.randint(low=1, high=10, size=(2, 3))
print("使用 np.random.randint() 创建的数组:")
print(randint_arr)result:
使用 np.random.randint() 创建的数组:
[[1 1 6][9 7 1]]
随机选择元素
  • 🍄 np.random.choice():从给定的一维数组中随机选择元素,可指定选择的元素个数、是否允许重复选择等。
code:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
# 从数组中随机选择元素, 形成指定size的数组,允许重复选择
choice_arr = np.random.choice(a=arr, size=(2, 2), replace=True)
print("使用 np.random.choice() 随机选择的元素:", choice_arr)result:
使用 np.random.choice() 随机选择的元素: [[3 5][1 4]]
创建单位阵
  • 🍄 使用 np.eye() 创建单位矩阵。
code:
import numpy as np# 创建 3x3 的单位矩阵
square_eye = np.eye(3)
print("3x3 的单位矩阵:")
print(square_eye)# 创建 2x3 的矩阵,主对角线为 1
rectangular_eye = np.eye(2, 3)
print("\n2x3 的矩阵,主对角线为 1:")
print(rectangular_eye)# 创建 3x3 的矩阵,对角线向右上方偏移 1 位
shifted_diagonal_eye = np.eye(3, k=1)
print("\n3x3 的矩阵,对角线向右上方偏移 1 位:")
print(shifted_diagonal_eye)# 创建 3x3 的矩阵,对角线向左下方偏移 1 位
negative_shifted_diagonal_eye = np.eye(3, k=-1)
print("\n3x3 的矩阵,对角线向左下方偏移 1 位:")
print(negative_shifted_diagonal_eye)result:
3x3 的单位矩阵:
[[1. 0. 0.][0. 1. 0.][0. 0. 1.]]2x3 的矩阵,主对角线为 1[[1. 0. 0.][0. 1. 0.]]3x3 的矩阵,对角线向右上方偏移 1 位:
[[0. 1. 0.][0. 0. 1.][0. 0. 0.]]3x3 的矩阵,对角线向左下方偏移 1 位:
[[0. 0. 0.][1. 0. 0.][0. 1. 0.]]

ndarray的基本属性

  • 🍑 numpy.shape: 指定数组的形状,返回一个元组或者整数,如果是一维的,返回int类型
  • 🍑 numpy.size: 元素的数量。
  • 🍑 numpy.ndim: 数组的维数。
code:
import numpy as np
nd1 = np.full((1, 3), 666)
print("nd1:", nd1)
print("shape:", nd1.shape)
print("size: %d" % nd1.size)
print("ndim: %d" % nd1.ndim)
nd2 = np.linspace(2, 3, 3)
print("nd2:", nd2)
print("shape:", nd2.shape)result:
nd1: [[666 666 666]]
shape: (1, 3)
size: 3
ndim: 2
nd2: [2.  2.5 3. ]
shape: (3,)

相关文章:

Python-numpy中ndarray对象创建,数据类型,基本属性

numpy库 numpy中的数据结构ndarrayndarray中的dtypendarray中的dtype的指定方式创建ndarray及指定dtype从列表创建ndarray使用 np.empty(), np.zeros(), np.ones() 和 np.full() 创建特定值的数组使用 np.arange() 创建等差数列数组使用 np.linspace() 创建等差数组使用np.logs…...

Python从入门到高手8.2节-元组的常用操作符

目录 ​8.2.1 元组的常用操作符 8.2.2 []操作符: 索引访问元组 8.2.3 [:]操作符&#xff1a;元组的切片 8.2.4 操作符&#xff1a;元组的加法 8.2.5 *操作符&#xff1a;元组的乘法 8.2.6 元组的关系运算 8.2.7 in操作符&#xff1a;查找元素 8.2.8 五一她玩了个狗吃…...

Python内置函数

Python作为一门简洁强大的编程语言&#xff0c;提供了丰富的内置函数&#xff08;Built-in Functions&#xff09;&#xff0c;这些函数无需导入任何模块即可直接使用。本文将介绍Python中最常用、最重要的内置函数&#xff0c;帮助初学者快速掌握这些强大的工具。 官方地址&a…...

一款基于 .NET 开源的多功能的 B 站视频下载工具

前言 哔哩哔哩&#xff08;B站&#xff09;是一个知名的视频学习平台&#xff0c;作为程序员而言这是一个非常值得推荐的网站。今天大姚给大家推荐一款基于 .NET 开源的多功能的 B 站视频下载工具&#xff1a;downkyi。 项目介绍 downkyi&#xff08;哔哩下载姬&#xff09;…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】5.2 数据分组与透视(CUBE/ROLLUP/GROUPING SETS)

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 5.2 数据分组与透视&#xff1a;CUBE/ROLLUP/GROUPING SETS深度解析5.2.1 数据准备与分析目标数据集与表结构分析目标 5.2.2 ROLLUP&#xff1a;层级化分组汇总功能与语法示…...

20、数据可视化:魔镜报表——React 19 图表集成

一、魔镜的预言本质 "数据可视化是霍格沃茨的预言水晶球&#xff0c;将混沌的数据星尘转化为可解读的命运轨迹&#xff01;" 魔法部占卜司官员挥舞魔杖&#xff0c;Echarts与Three.js的图表矩阵在空中交织成动态星图。 ——基于《国际魔法联合会》第9号可视化协议&a…...

笔记本电脑升级计划(2017———2025)

ThinkPad T470 (2017) vs ThinkBook 16 (2025) 完整性能对比报告 一、核心硬件性能对比 1. CPU性能对比&#xff08;i5-7200U vs Ultra9-285H&#xff09; 参数i5-7200U (2017)Ultra9-285H (2025)提升百分比核心架构2核4线程 (Skylake)16核16线程 (6P8E2LPE)700%核心数制程工…...

Flutter——数据库Drift开发详细教程(四)

目录 参考正文表达式1.比较2.布尔代数3.算术BigIn 4.空值检查6.日期和时间7.IN和NOT IN8.聚合函数&#xff08;例如 count 和 sum&#xff09;8.1比较8.2算术8.4计数8.5group_concat8.9窗口函数 9.数学函数和正则表达式10.子查询10.1 标量子查询10.2 isInQuery10.3 存在10.4完整…...

android-ndk开发(6): 查看反汇编

android-ndk开发(6): 查看反汇编 2025/05/05 1. 概要 android-ndk 是基于 clang 的工具链&#xff0c; clang 则保持了和 gcc 的高度兼容。 在 Linux 开发机上&#xff0c; GCC 套件里的 objdump 提供了反汇编的功能。 实际上 android-ndk 也提供了一份 objdump&#xff0c;…...

浅析AI大模型为何需要向量数据库?【入门基础】

文章目录 引言&#xff1a;大模型时代的存储挑战一、向量数据库&#xff1a;大模型的"海马体"1.1 什么是向量数据库&#xff1f;1.2 为什么大模型离不开向量数据库&#xff1f;(1) 嵌入(Embedding)的本质(2) 突破上下文窗口限制 二、相似性度量&#xff1a;欧氏距离与…...

Java面试:微服务与大数据场景下的技术挑战

面试对话场景 第一轮&#xff1a;基础知识考察 面试官&#xff1a;谢先生&#xff0c;您能简单介绍一下Java SE 8的新特性吗&#xff1f; 谢飞机&#xff1a;当然&#xff0c;Java SE 8引入了Lambda表达式、Stream API和新的日期时间API&#xff0c;大大简化了代码编写。 面…...

[前端]异步请求的竞态问题

竞态条件简介 遇到的问题 切换标签请求数据&#xff0c;但又快速切换标签请求数据&#xff0c;展示的是前一个标签的数据&#xff0c; 需要在切换标签时添加取消请求的机制&#xff0c;使用AbortController来取消正在进行的请求。当用户快速切换标签时&#xff0c;取消之前的请…...

【PDF拆分+提取内容改名】批量拆分PDF提取拆分后的每个PDF物流面单数据改名或导出表格,基于WPF的PDF物流面单批量处理方案

应用场景 物流行业每天需要处理大量包含物流面单的PDF文件,这些文件通常包含运单号、收发货人信息、货物详情等重要数据。传统手动处理方式效率低下且容易出错。本方案通过WPF实现一个自动化工具,能够: 批量拆分多页PDF为单页文件提取每页面单中的关键信息(如运单号、收件人…...

adb无线调试步骤

环境&#xff1a; macOS&#xff1b; 换成 linux 或 windows 也支持的小米15 Pro&#xff1b; 换成其他 android 手机也支持的 电脑和手机接入相同Wifi在电脑上&#xff0c;确保安装了 adb 对于 Android 开发者&#xff0c; 一般是是通过 Android Studio 安装对于 ndk 开发者…...

RocketMQ与Kafka的区别

文章目录 相同之处不同之处存储形式性能对比传输系统调用存储可靠性单机支持的队列数延时消息消息重复消息过滤消息失败重试死信队列 DLQ回溯消息分布式事务服务发现开发语言友好性开源社区活跃度商业支持成熟度 总结Kafka 和 RocketMQ 怎么选&#xff1f; 本文参考&#xff1a…...

剥开 MP4 的 千层 “数字洋葱”:从外到内拆解通用媒体容器的核心

在当今数字化时代&#xff0c;MP4 格式随处可见&#xff0c;无论是在线视频、手机拍摄的短片&#xff0c;还是从各种渠道获取的音频视频文件&#xff0c;MP4 都占据着主流地位。它就像一个万能的 “数字媒体集装箱”&#xff0c;高效地整合和传输着各种视听内容。接下来&#x…...

设计模式(结构型)-组合模式

定义 组合模式的定义为&#xff1a;将对象组合成树形结构以表示 “部分 - 整体” 的层次结构&#xff0c;并且使得用户对单个对象和组合对象的使用具有一致性。其最关键的实现要点在于&#xff0c;简单对象和复合对象必须实现相同的接口&#xff0c;这一特性正是组合模式能够对…...

使用 IDEA + Maven 搭建传统 Spring MVC + Thymeleaf 项目的详细步骤

使用 IDEA Maven 搭建传统 Spring MVC Thymeleaf 项目 环境准备步骤 1&#xff1a;创建 Maven 项目步骤 2&#xff1a;添加依赖&#xff08;pom.xml&#xff09;步骤 3&#xff1a;配置 web.xml步骤 4&#xff1a;Spring 配置类&#xff08;Java Config&#xff09;步骤 5&am…...

「Mac畅玩AIGC与多模态19」开发篇15 - 判断节点与工具节点联动示例

一、概述 本篇在引入工具节点的基础上&#xff0c;进一步结合判断节点&#xff08;条件分支&#xff09;&#xff0c;实现根据用户输入内容动态控制是否调用外部接口。通过构建“用户是否需要天气信息”的条件逻辑&#xff0c;开发人员将掌握如何在 Dify 工作流中通过条件判断…...

docker 外部能访问外网,内部不行(代理问题)

如果宿主机访问外网依赖代理&#xff08;比如 http_proxy 环境变量&#xff09;&#xff0c;容器默认不会继承。需要显式传入代理&#xff1a; docker run -e http_proxy... -e https_proxy... ...在 docker-compose 中配置 HTTP/HTTPS 代理 version: 3 services:app:image: …...

模糊控制理论(含仿真)

本文讲解模糊控制理论、设计步骤以及案例。 1. 模糊控制原理&#xff1a; 模糊控制&#xff08;Fuzzy Control&#xff09;是一种基于模糊逻辑推理的人类经验规则实现的控制方法&#xff0c;适用于对系统模型不精确或难以建立精确数学模型的复杂系统。它利用“如果…那么…”&…...

《 C++ 点滴漫谈: 三十六 》lambda表达式

一、引言 在 C98 和 C03 时代&#xff0c;尽管 C 拥有强大的泛型编程能力和丰富的面向对象特性&#xff0c;但在表达局部逻辑、回调行为或一次性函数处理时&#xff0c;程序员却常常需要冗长的代码来定义函数对象&#xff08;functor&#xff09;&#xff0c;或者使用函数指针…...

【C/C++】函数模板

&#x1f3af; C 学习笔记&#xff1a;函数模板&#xff08;Function Template&#xff09; 本文是面向 C 初学者的函数模板学习笔记&#xff0c;内容包括基本概念、定义与使用、实例化过程、注意事项等&#xff0c;附带示例代码&#xff0c;便于理解与复现。 &#x1f4cc; 一…...

电赛经验分享——模块篇

1、前言 打算在这一个专栏中&#xff0c;分享一些本科控制题电赛期间的经验&#xff0c;和大家共同探讨&#xff0c;也希望能帮助刚刚参加电赛的同学&#xff0c;了解一些基本的知识。一些见解和看法可能不同或有错误&#xff0c;欢迎批评指正。 在本文中&#xff0c;主要介绍笔…...

LeetCode 热题 100 70. 爬楼梯

LeetCode 热题 100 | 70. 爬楼梯 大家好&#xff0c;今天我们来解决一道经典的动态规划入门题——爬楼梯。这道题在LeetCode上被标记为简单难度&#xff0c;要求我们计算爬到第n阶楼梯的不同方法数&#xff0c;每次可以爬1或2个台阶。下面我将详细讲解解题思路&#xff0c;并附…...

浔川AI测试版内测报告

浔川AI测试版内测报告 一、引言 本次对浔川AI测试版进行内测&#xff0c;旨在全面评估其功能表现与性能状况&#xff0c;为后续的优化升级及正式上线提供有力依据。 二、测试环境 1. 硬件环境&#xff1a;[Windows 10】 2. 软件环境&#xff1a;操作系统为【核桃编程]&#xff…...

Leetcode刷题记录31——旋转图像

题源&#xff1a;https://leetcode.cn/problems/rotate-image/description/?envTypestudy-plan-v2&envIdtop-100-liked 题目描述&#xff1a; 思路一&#xff1a; &#x1f4a1; 解题思路&#xff1a;分两步完成旋转 虽然“直接旋转”看起来有点抽象&#xff0c;但我们…...

攻防世界-php伪协议和文件包含

fileinclude 可以看到正常回显里面显示lan参数有cookie值表示为language 然后进行一个判断&#xff0c;如果参数不是等于英语&#xff0c;就加上.php&#xff0c;那我们就可以在前面进行注入一个参数&#xff0c;即flag&#xff0c; payload&#xff1a;COOKIE:languageflag …...

[C++] 小游戏 决战苍穹

大家好&#xff0c;各位看到这个标题&#xff0c;斗破苍穹什么时候改叫决战苍穹了&#xff1f;其实&#xff0c;因为版权等一系列问题&#xff0c;斗破苍穹正式改名为决战苍穹&#xff0c;这个版本主要更新内容为解决了皇冠竞技场太过影响游戏平衡&#xff0c;并且提高了一些装…...

项目成本管理_挣得进度ES

在项目成本管理的新实践中&#xff0c; 通过挣值管理(EVM) 的扩展&#xff0c;引入 挣得进度ES 这一概念&#xff0c; ES是EVM理论和实践的延伸&#xff0c;挣得进度理论用ES和实际时间(AT) 替代了传统EVM所使用的进度偏差测量指标SV(挣值—计划价值)。 使用这种替代方法计算…...

矩阵快速幂 快速求解递推公式

文章目录 习题790.多米诺和托米诺平铺 对于一个给定的递推公式&#xff0c;例如dp[i] dp[i-1] * a dp[i-2] * b,那么常用的做法&#xff0c;肯定是使用o(n)的时间复杂度进行线性求解&#xff0c;但是如果 n 10 18 n{10}^{18} n1018&#xff0c;那么肯定超时的&#xff0c;这…...

驱动开发硬核特训 · Day 28(上篇):pinctrl 子系统详解与实战分析

&#x1f4c5; 日期&#xff1a;2025-05-05 &#x1f4da; 技术平台&#xff1a;嵌入式Jerry&#xff08;B站&#xff09; 一、引言 在嵌入式系统中&#xff0c;SoC 芯片的引脚通常具有多种功能&#xff0c;如 GPIO、UART、I2C、SPI 等。为了在不同的应用场景中灵活配置引脚功…...

20250505下载VLC for Android

20250505下载VLC for Android 2025/5/5 14:35 缘起&#xff1a;做Rockchip的RK3566的Android13下的跨网段PING。 酷芯的图传网段 和 softAP/以太网RJ45共享网段之间互相PING通。 图传的原厂/供应商说可以使用ffmpeg进行rtsp流的转发。 后来确认VLC for Android版本只有接受流&a…...

Jetpack Compose 响应式布局实战:BoxWithConstraints 完全指南

深入理解 Jetpack Compose 中的 BoxWithConstraints 前言 在构建现代 Android 应用时&#xff0c;响应式设计已成为必不可少的要求。Jetpack Compose 作为 Android 的现代 UI 工具包&#xff0c;提供了 BoxWithConstraints 这一强大组件&#xff0c;帮助我们轻松创建能够适应…...

ZYNQ笔记(十七):IP核封装与接口定义

版本&#xff1a;Vivado2020.2&#xff08;Vitis&#xff09; 任务&#xff1a;将“HDMI彩条显示实验”&#xff08;正点原子 ZYNQ FPGA 开发视频&#xff09;中所实现的 RGB2DVI 模块封装成一个 IP 核。 目录 一、介绍 &#xff08;1&#xff09;IP核 &#xff08;2&#x…...

学习笔记msp430f5529lp

注&#xff1a;本文仅用于个人学习使用&#xff0c;记录笔记。 学习视频msp430f5529库函数入门教程 00.序言_哔哩哔哩_bilibili 向大佬致敬理工男小帅-CSDN博客 CCS环境快捷键使用 代码注释&#xff1a;Ctrl/ 提示/补全: CtrlShiftC 放大:Ctrl 缩小:Ctrl- 切换选择模式&…...

人工智能应用:从技术突破到生态重构的演进之路

一、人工智能的发展历程&#xff1a;从符号主义到通用智能探索 人工智能&#xff08;AI&#xff09;的发展始于20世纪中叶&#xff0c;其历程可划分为四个关键阶段&#xff1a; ​符号主义与早期探索&#xff08;1950s-1970s&#xff09;​​ 以逻辑推理和专家系统为核心&…...

【ZYNQ Linux移植】4-内核移植

文章目录 0 写在前面1 内核源码的文件结构2 Linux内核移植2.1 移植配置文件2.2 移植设备树2.3 创建脚本进行编译2.4 备份相关文件 3 测试4 总结5 参考资料 0 写在前面 这是一个系列博客&#xff0c;详细介绍如何在 ZYNQ 与 ZYNQ MP 平台上如何移植 Linux 系统。目前网络上的大部…...

代码随想录算法训练营第三十二天

LeetCode/卡码网题目: 518. 零钱兑换 II377. 组合总和 Ⅳ790. 多米诺和托米诺平铺(每日一题)57. 爬楼梯&#xff08;第八期模拟笔试&#xff09; 其他: 今日总结 往期打卡 背包问题特点: 滚动数组背包遍历顺序 完全背包从小到大,即基于当前物品更新过的继续更新01背包从大到…...

java CompletableFuture 异步编程工具用法1

1、测试异步调用&#xff1a; static void testCompletableFuture1() throws ExecutionException, InterruptedException {// 1、无返回值的异步任务。异步线程执行RunnableCompletableFuture.runAsync(() -> System.out.println("only you"));// 2、有返回值的异…...

Spring Boot 集成 Solr 的详细步骤及示例

环境准备 安装 Solr &#xff1a;从 Solr 官网&#xff08;Welcome to Apache Solr - Apache Solr&#xff09;下载并安装最新版本&#xff0c;然后通过命令 bin/solr start 启动 Solr 服务&#xff0c;使用 bin/solr create -c mycore 创建一个新的 Solr 核心。 安装 JDK &am…...

Nemotron-Research-Tool-N1 如何提升大语言模型工具使用能力?

Nemotron-Research-Tool-N1如何提升大语言模型工具使用能力&#xff1f; 如今&#xff0c;大语言模型&#xff08;LLMs&#xff09;发展迅猛&#xff0c;给它配备外部工具成为研究热点。但传统方法存在不少问题。这篇论文提出的Nemotron-Research-Tool-N1系列模型带来新突破&a…...

OpenCV进阶操作:图像直方图、直方图均衡化

文章目录 一、图像直方图二、图像直方图的作用三、使用matplotlib方法绘制直方图2.使用opencv的方法绘制直方图&#xff08;划分16个小的子亮度区间&#xff09;3、绘制彩色图像的直方图 四、直方图均衡化1、绘制原图的直方图2、绘制经过直方图均衡化后的图片的直方图3、自适应…...

Android控件VideoView用法

一 控件UI <VideoViewandroid:id="@+id/videoView"android:layout_width="match_parent"android:layout_height="match_parent"android:scaleType="fitCenter" /> 二 配置 <?xml version="1.0" encoding="u…...

人工智能数学基础(十)—— 图论

图论作为数学的重要分支&#xff0c;为人工智能提供了强大的建模和分析工具。无论是社交网络分析、路径规划还是数据结构设计&#xff0c;图论都发挥着不可替代的作用。今天&#xff0c;我将带领大家深入浅出地探索图论的核心概念&#xff0c;并结合 Python 实例&#xff0c;让…...

深入探索Anthropic Claude与Spring AI的融合应用

深入探索Anthropic Claude与Spring AI的融合应用 前言 在人工智能的蓬勃发展进程中&#xff0c;自然语言处理领域不断涌现出强大的模型和工具。Anthropic Claude系列基础AI模型凭借其出色的性能&#xff0c;在各种应用场景中展现出巨大潜力&#xff0c;为开发者和企业提供了丰…...

Python爬虫实战:获取优美图库各类高清图片,为用户提供设计素材

一、引言 在互联网时代,高清壁纸资源丰富多样,而优美图库作为一个提供大量精美壁纸的网站,吸引了众多用户。通过 Python 爬虫技术,可以自动化地从该网站获取所需的壁纸资源,为用户节省时间和精力。然而,网站通常会采取反爬措施来防止数据被恶意抓取,因此需要在爬虫程序…...

Java常用注解大全(基于JDK17+SpringBoot3)

一、基础注解(Java原生) 编译相关 @Override:方法重写校验 java 复制 下载 @Override public String toString() { return "CustomObj"; } @Deprecated:标记过时元素 java 复制 下载 @Deprecated(since="1.8", forRemoval=true) public void oldMethod…...

【NLP】30. 深入理解 In-Context Learning 的核心机制与策略

In-Context Learning&#xff08;ICL&#xff09;详解&#xff1a;提示学习时代的语言理解 一、什么是 In-Context Learning&#xff08;ICL&#xff09;&#xff1f; In-Context Learning 是指&#xff1a; 不改变模型参数&#xff0c;通过在输入中加入示例&#xff08;demon…...

数字化工厂中央控制室驾驶舱系统 - Windows 部署笔记

数字化工厂中央控制室驾驶舱系统 - Windows 部署笔记 环境准备 这篇笔记记录了我在 Windows 10/11 上部署数字化工厂中央控制室驾驶舱系统的全过程&#xff0c;包括各种常见问题的解决方法。部署过程中使用了国内镜像源来加快下载速度。 前置需求 Python&#xff1a;3.8 到…...