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

可持久化线段树 主席树 详解

😊 | Powered By HeartFireY | Persistent Segment Tree
📕 | 需要的前导知识:线段树(Segment Tree)、权值线段树、可持久化数据结构理论(Persistent Data Structure Theory)

一、可持久化线段树 简介

可持久化线段树,顾名思义,即对线段树进行可持久化处理之后的线段树。

在可持久化数据结构的理论中,我们对可持久化的概念有所了解:“可以返回之前的某个状态,并在该基础上进行修改”。可持久化线段树就是这样一种结构。

我们从一般思路出发进行分析:想要让线段树可持久化,最朴素的方法就是每进行一次操作都新建一颗线段树。但显然这是不明智的做法:时间和空间上而言都是非常差的的算法。我们不妨继续分析一下更新之后与更新之前的结构:每次更新都只有少量的点被修改。因此大量的点可以继续使用,无需重新建树。

本文分两个部分对可持久化线段树进行探讨。

值得注意的是:我们一般认为主席树就是可持久化线段树,实际上两者之间有区分:

可持久化线段树单纯指经过可持久化处理之后,能够查询、修改历史节点数据的结构,建立在基础线段树的基础之上;而主席树建立在权值线段树的基础之上,能够查询修改历史节点。二者本质区别在于纪念性可持久化的对象所维护的对象不同(一个维护权值、一个维护值域)。

因此,可持久化线段树≠\neq=主席树,准确的说,主席树⊂\subset可持久化线段树。

二、可持久化线段树 基本结构与操作

1.基本结构、建树操作

首先应该明确一点:由于可持久化结构重叠的特殊性,可持久化线段树不能采用堆式储存,因此只能采取动态开点的方式进行储存。

不同于后续节点的更新,对于最初的状态下的线段树我们采用一次建树完成:

  1. 采用递归建树,递归函数参数保存左右边界(初始化为(1,n)(1, n)(1,n))、当前元素的指针。同时保存总计数cntcntcnt

  2. 递归边界控制为l==rl == rl==r,由于此时左边界lll即为指向aaa数组的指针,因此叶子节点赋值val(p)=a[l]val(p) = a[l]val(p)=a[l]

  3. 非叶子节点首先记录左右子节点的下标ls(p)=cnt++,rs(p)=cnt++ls(p) = cnt++, rs(p) = cnt++ls(p)=cnt++,rs(p)=cnt++,然后递归建左右子树:

    build(l,mid,ls(p))、build(mid+1,/r,rs(p))build(l,\ mid,\ ls(p))、build(mid + 1,/ r, rs(p))build(l, mid, ls(p))build(mid+1,/r,rs(p))

  4. 建立左右节点后非叶子节点 = 左右子节点的和:val(p)=val(ls(p))+val(rs(p))val(p) = val(ls(p)) + val(rs(p))val(p)=val(ls(p))+val(rs(p))

根据以上建树过程,我们以数组a=1,2,3,4,5a = {1,2,3,4,5}a=1,2,3,4,5为例建立线段树:

在这里插入图片描述

可以看到:不同于基础线段树,可持久化线段树的下标不再遵循堆的规律,这种建树方式我们称为动态开点

结构体封装版:

#define ls(x) tree[x].ls
#define rs(s) tree[x].rs
#define val(x) tree[x].val
#define mark(x) tree[x].mark
struct node{int val, mark = INT_MIN;int ls, rs;
}tree[MAXN];void build(int l = 1, int r = n, int p = 1){if(l == r) val(p) = a[l];else{ls(p) = ++cnt, rs(p) = ++cnt;int mid = (l + r) >> 1;build(l, mid, ls(p));build(mid + 1, r, rs(p));val(p) = val(ls(p)) + val(rs(p));}
}

建树完毕后,上述线段树已经静态化,后续的修改操作通过增加新节点来实现。

2.单点修改

假设现在要对A[4]A[4]A[4]−2-22,则操作步骤如下:

首先建立新根结点,更新根节点记录数组:root[flag]=++cntroot[flag] = ++cntroot[flag]=++cnt

在这里插入图片描述

创建新节点后对其进行处理。由于我们要修改的元素A[4]A[4]A[4]位于右子树,因此左子树部分保持不变,可以继续使用。因此将原左子树与新节点相连,同时新建右子节点。

在这里插入图片描述

继续处理,A[4]A[4]A[4]位于当前结点左子树,右子树保持不变继续使用,因此新建左子节点,将原右子节点与新节点相连。

继续访问左子节点发现到达叶子结点,对原数据进行处理后再逐层回溯,更新路径上的结点值。

在这里插入图片描述

单点修改的操作到此结束。可以看到,对于最初版本的线段树,其任何数据未被改变。

void update(int x, int d, int p, int q, int cl = 1, int cr = n){if (cl == cr) val(q) = val(p) + d; // 给叶子节点赋值else{ls(q) = ls(p), rs(q) = rs(p); // 复制节点int mid = (cl + cr) / 2;if (x <= mid) ls(q) = ++cnt, update(x, d, ls(p), ls(q), cl, mid); // 创建新节点作为左儿子,然后往左递归else rs(q) = ++cnt, update(x, d, rs(p), rs(q), mid + 1, cr); // 创建新节点作为右儿子,然后往右递归val(q) = val(ls(q)) + val(rs(q)); // 根据子节点给当前节点赋值}
}

3.区间查询

区间查询与基础线段树几乎一致,只需要额外关注查询的版本对应的根节点即可。

int query(int l, int r, int p, int cl = 1, int cr = n){if (cl > r || cr < l) return 0;else if (cl >= l && cr <= r) return val(p);else{int mid = (cl + cr) / 2;return query(l, r, ls(p), cl, mid) + query(l, r, rs(p), mid + 1, cr);}
}

4.区间修改

我们需要再次回到LazyLazyLazy标记上进行讨论:

对于LazyLazyLazy标记,我们其实有两种实现方案:

  1. 标记上下传,也就是我们最常用的puush_up、push_downpuush\_up、push\_downpuush_uppush_down操作;
  2. 标记永久化:标记时不用puush_up、push_downpuush\_up、push\_downpuush_uppush_down,而是在查询的时候干预数据。

二者的一大区别在于,标记上下传会引发修改结点路径上的点的更新,而标记永久化不会影响树上的点。

这点区别是非常有意义的:考虑一棵可持久化线段树,如果从某节点上传,则到根节点路径上的点都会被修改,而可持久化结构导致了某些结点的复用,这会引发多个版本的线段树更新,无法指定是哪一版本;同理,下传标记也会引发不必要的点的更新。因此,我们只能通过标记永久化对可持久化线段树进行修改。

于是,我们在查询时需要额外带上一个标记:

ll query(int l, int r, int p, int cl = 1, int cr = n, ll mk = 0){if (cl > r || cr < l) return 0;else if (cl >= l && cr <= r) return val(p) + mk * (cr - cl + 1); // 加上带的标记else{int mid = (cl + cr) >> 1;return query(l, r, ls(p), cl, mid, mk + mark(p)) + query(l, r, rs(p), mid + 1, cr, mk + mark(p)); // 带着标记传递}
}

对于updateupdateupdate操作,由于缺少传递标记,因此由子节点给当前节点赋值可能会发生错误。

void update(int l, int r, int d, int p, int q, int cl = 1, int cr = n){ls(q) = ls(p), rs(q) = rs(p), mark(q) = mark(p); // 复制节点if (cl >= l && cr <= r && cr > cl) mark(q) += d;else{int mid = (cl + cr) >> 1;if (cl <= r && mid >= l) ls(q) = ++cnt, update(l, r, d, ls(p), ls(q), cl, mid);// 提前进行判断,以免新建不必要的节点if (mid + 1 <= r && cr >= l) rs(q) = ++cnt, update(l, r, d, rs(p), rs(q), mid + 1, cr);}val(q) = val(p) + (min(cr, r) - max(cl, l) + 1) * d; // 根据需要更新的区间长度计算当前节点的值
}

三、主席树

区别于一般的可持久化线段树,主席树是可持久化权值线段树。

下面简单介绍一下主席树的构造过程:

1.建立空树

void build(int l = 1, int r = n, int p = 1){val(p) = 0;if (l != r){ls(p) = ++cnt, rs(p) = ++cnt;int mid = (l + r) / 2;build(l, mid, ls(p));build(mid + 1, r, rs(p));}
}

待补充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-2873.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

Xxl-Job调度器原理解析

项目解析源码地址&#xff1a;https://gitee.com/lidishan/xxl-job-code-analysisxxl-job版本&#xff1a;2.3.0Xxl-Job分为执行器、调度器。而我们平时的客户端就属于一个执行器&#xff0c;执行器启动的时候会自动注册到调度器上&#xff0c;然后调度器进行远程调度。调度器初…...

51单片机利用锁存器控制数码管显示年月日时分秒

数码管模块中的两片74hc573&#xff0c;一片锁存段码&#xff0c;一片锁存位码&#xff0c;这样才能驱动8位数码管。74hc573是锁存器&#xff0c;用于数码管显示时通常是采用段选、片选共用同一组并口的驱动方式。 驱动数码管需要两个信号&#xff0c;一个是段选信号&#xff…...

webrtc之SVC实现(十)

一、概念 SVC&#xff08;可适性视频编码或可分级视频编码&#xff09;是传统H.264/MPEG-4 AVC编码的延伸&#xff0c;可提升更大的编码弹性&#xff0c;并具有时间可适性&#xff08;Temporal Scalability&#xff09;、空间可适性&#xff08;Spatial Scalability&#xff09…...

LeetCode 数值的整数次方

实现 pow(x, n) &#xff0c;即计算 x 的 n 次幂函数&#xff08;即&#xff0c;xn&#xff09;。不得使用库函数&#xff0c;同时不需要考虑大数问题。 示例 1&#xff1a; 输入&#xff1a;x 2.00000, n 10 输出&#xff1a;1024.00000 示例 2&#xff1a; 输入&#xf…...

python 继承和多态

在已有类的基础上创建新类&#xff0c;这其中的一种做法就是让一个类从另一个类那里将属性和方法直接继承下来&#xff0c;从而减少重复代码的编写。提供继承信息的我们称之为父类&#xff0c;也叫超类或基类&#xff1b;得到继承信息的我们称之为子类&#xff0c;也叫派生类或…...

JAVA 基础学习之 继承与方法覆写

1 继承引入​​​​​​​ 三个类都有重复的代码&#xff0c;可以把这共同的代码抽出去&#xff0c;抽出去放到另外一个类里面&#xff1b;下面的3个类和上面的类需要发生一点关系&#xff08;继承&#xff09;&#xff0c;上面的类叫做 父类&#xff08;超类&#xff0c;基类&…...

个性化个人主页html5模板

介绍&#xff1a; 个性化个人主页html5模板 网盘下载地址&#xff1a; http://kekewl.net/tARDuX5n02U0 图片&#xff1a;...

java IO教程《三》

缓冲区流讲解(Buffered) 什么是缓冲区&#xff1f; 缓冲流&#xff0c;也叫高效流&#xff0c;是对4个基本的File流的增强&#xff0c;所以也是4个流&#xff0c;按照数据类型分类&#xff1a; 字节缓冲流&#xff1a;BufferedInputStream&#xff0c;BufferedOutputStream字…...

elementUI-Tree 树形控件的使用

elementUI-Tree 树形控件的使用 实现效果&#xff1a; 控件的官方使用说明 控件要求返回的数据结构 {"success": true,"code": 20000,"message": "成功","data": {"items": [{"id": "1394579386…...

实训第一天以及第二天所学记录

实训第一天以及第二天所学记录 浏览器内核 IE&#xff1a;Trident Firefox&#xff1a;Gecko Chrome&#xff1a;Webkit / Blink Safari&#xff1a;Webkit Opera&#xff1a;Presto / Blink 在VScode中使用注释的快捷键 按住键盘的Ctrl/ 元素 &#xff08;标签 标记&…...

跨域请求

/* * Description: 配置文件 */ module.exports { publicPath: "./", devServer: { open: true, proxy: "http://106.15.179.105/api" //跨域路径 }, }; // proxy是代理的意思 // 代理跨域就是在欺骗浏览器 让浏览器认为你访问的还是 同…...

Mac os下通过Anaconda在远程服务器配置python虚拟环境

一、SSH管理软件 这里推荐一款本人正在使用的软件&#xff0c;Termius。Termius是一款非常好用而且漂亮的SSH客户端&#xff0c;能快速远程控制服务器&#xff0c;可以定制自己喜欢的主题.Termius不仅涵盖了Windows、Linux、OSX&#xff0c;还变态得支持Android和iOS&#xff…...

Labview需求(部分)

本人从事工控行业多年,有一些资源,目前labview的单子干不过来了,想找几个靠谱的labview工程师跟我合作,想做兼职,接单的labview工程师可以私聊我,另外我有一些项目还需要跟单片机工程师,plc工程师,fpga工程师合作,欢迎大家找我合作!以下是手里比较着急的项目,需要外包 需求1&am…...

2021java1年经验公司面试真题

1面我就省略了&#xff0c;主要就是看你的以前工作情况&#xff0c;以前工作内容能不能清晰表达&#xff0c;还有一些简单的java基础问题&#xff0c;大概20多分钟。二面就是40分钟基础&#xff0c;20分钟业务&#xff0c;10分钟个人情况。下面是二面问题 1.自我介绍 做一下自…...

Unity基础之C#核心篇笔记4:多态

Unity基础之C#核心篇笔记4&#xff1a;多态多态1.多态的概念2.解决的问题3.多态的实现4.总结抽象类和抽象方法1.抽象类2.抽象函数3.总结4.练习题接口1.接口的概念2. 接口的申明3.接口的使用4.接口可以继承接口5.显示实现接口6.总结7.练习题密封方法1.密封方法基本概念2.实例3.总…...

LeetCode每日一题 - 有多少小于当前数字的数字

题目&#xff1a; 给你一个数组 nums&#xff0c;对于其中每个元素 nums[i]&#xff0c;请你统计数组中比它小的所有数字的数目。 换而言之&#xff0c;对于每个 nums[i] 你必须计算出有效的 j 的数量&#xff0c;其中 j 满足 j ! i 且 nums[j] < nums[i] 。 以数组形式返回…...

用Python爬取彼岸图网图片

用Python爬取彼岸图网图片 *使用了 四个模块 import time import requests from lxml import etree import os 没有的话自行百度安装。 #encoding utf-8 import time import requests from lxml import etree import os# http://www.netbian.com/ 爬虫 if __name__ __mai…...

第k个数(快速选择)

算法思路 快速选择&#xff1a; 1.即任意选一个数&#xff0c;将数组划分为二。 2.最终根据该数所在的位置&#xff0c;即第&#xff1f;大&#xff0c;选择第k大的数字所在区间进行划分。 时间复杂度分析&#xff0c;第一次划分n,下一次划分期望n/2&#xff0c;n/4…累加和小…...

yolov5 detect.py报错

新手求助 yolov5训练了自己的数据集后&#xff0c;test没问题&#xff0c;但是运行detect.py就报错了&#xff0c;一直找不到问题所在&#xff0c; 求大佬指点指点...

DEX 争霸战火升级,BabySwap 会否成为下一代黑马?

在 AMM机制大力推动下&#xff0c;DEX的群雄争霸比预想中来得要快且凶猛。伴随着诸如高盛等主流资本逐步认可DeFi 的意义&#xff0c;在真正的去中心化金融爆发的前夜&#xff0c;可以说谁抢占了DEX 红海的先机&#xff0c;谁就赢得了未来。 从早期以太坊的Uniswap和DoDo&…...

【每日一题】day29_01 正数数组的最小不可组成和

学习目标&#xff1a; 目标&#xff1a;熟练运用Java所学知识 学习内容&#xff1a; 本文内容&#xff1a;使用java解决 正数数组的最小不可组成和 文章目录学习目标&#xff1a;学习内容&#xff1a;题目描述解题思路&#xff1a;实现代码题目描述 链接&#xff1a;https:/…...

SpringBoot入门及官网教程

文章目录http://felord.cn/_doc/_springboot/2.1.5.RELEASE/_book/https://spring.io/projects/spring-boothttps://springboot.io/http://felord.cn/_doc/_springboot/2.1.5.RELEASE/_book/ https://spring.io/projects/spring-boot https://springboot.io/...

Python入门及官网教程

文章目录https://www.python.org/http://www.python-china.com/https://www.python.org/ http://www.python-china.com/...

源码部署pxc集群

想了想还是研究一下怎么源码安装pxc吧&#xff0c;毕竟很多组件都是源码安装的。 环境&#xff1a; yum install -y boost-devel libodb-boost-devel check-devel openssl-devel libaio-devel 安装scons 需要2.7 的Python wget https://nchc.dl.sourceforge.net/project/s…...

Mysql数据库必备基础命令

1.安装 [rootlocalhost ~]# yum install mariadb mariadb-server #安装 [rootlocalhost ~]# systemctl start mariadb [rootlocalhost ~]# netstat -pltun|grep mysql #默认端口是3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1…...

SSM 出现 Could not create connection to database server 解决方法

如果以前项目数据库为5.0版本&#xff0c;而你新的数据库版本为8.0版本的&#xff0c;在运行时可能会出现 解决方法&#xff1a; 1.pom.xml 修改为你的mysql版本号&#xff08;版本号查询方式为&#xff1a;select version() from dual;&#xff09; 2.注意JDBC驱动名8.0版…...

51单片机利用锁存器控制数码管显示年月日时分秒

数码管模块中的两片74hc573&#xff0c;一片锁存段码&#xff0c;一片锁存位码&#xff0c;这样才能驱动8位数码管。74hc573是锁存器&#xff0c;用于数码管显示时通常是采用段选、片选共用同一组并口的驱动方式。 驱动数码管需要两个信号&#xff0c;一个是段选信号&#xff…...

SpringBoot 项目 添加 redis配置

一、新建一个springboot 项目&#xff0c;springboot项目创建过程详见&#xff1a;https://blog.csdn.net/wang_jing_jing/article/details/115075991 二、pom.xml依赖配置 <!-- redis 配置 --> <dependency><groupId>org.springframework.boot</groupI…...

IO流输出输入

java.io.File:文件和目录(文件夹)路径名的抽象表示形式。 * 构造方法 * * File(String parent, String child) * File(String pathname) * * 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 * File(File parent, String child) * …...

Redis简介与安装

1. Redis介绍 Redis是一个高性能的 key-value 数据库&#xff0c; 它是完全开源免费的&#xff0c;遵守 BSD 协议&#xff0c; Redis 和 Memcached 类似&#xff0c;都是内存级别的数据缓存&#xff0c;主要用户数据缓存&#xff0c;它支持存储的类型相对更多&#xff0c;包括…...

[事务]-事务概念/特性/并发问题/传播特性

1. 事务的概念 事务&#xff08;Transaction&#xff09;指的是一个操作序列&#xff0c;该操作序列中的多个操作要么都做&#xff0c;要么都不做&#xff0c;是一个不可分割的工作单位&#xff0c;是数据库环境中的逻辑工作单位&#xff0c;由DBMS中的事务管理子系统负责…...

Qt 视频上叠加透明图片

Qt 视频上叠加透明图片 最近公司需要一个上位机软件&#xff0c;主要是全屏显示视频&#xff0c;在视频上面叠加透明图片。 调试了很多种方法&#xff0c;效果都不如意&#xff0c;主要是因为Qt 窗口背景不能被覆盖&#xff0c;透明背景&#xff0c;又不能播放视频。 我调试了…...

[pillow]透明图片和不透明图片叠加合成--添加透明度

一开始尝试了网上各种方法&#xff0c;效果都不太好&#xff0c;边缘比较毛躁。目前试出来比较好的方法alpha_composite和paste 无透明度 #reference&#xff1a;https://blog.csdn.net/weixin_43624538/article/details/104768037 import PIL.Image as Imagelayer1 Image.o…...

[教程] [Matplotlib] 生成背景透明的图片

长话短说 测试环境 macOS Catalina 10.15.3Python 3.7.3Matplotlib 3.1.3 方案一 import matplotlib.pyplot as pltfig, ax plt.subplots() fig.patch.set_alpha(0.) # 或者其他值方案二 import matplotlib.pyplot as pltfig, ax plt.subplots()# 绘制图片 ...# 保存图…...

Java操作透明图片并保持背景透明

最近的一个需求&#xff0c;需要对背景为透明的图片加汉字&#xff0c;加完后会出现背景变黑的情况&#xff0c;附上解决方案 public static void pressText2(String sourceImg,String targetImg) {try {File file new File(sourceImg);File targetfile new File(targetImg)…...

【OpenCV】opencv处理透明图片

OpenCV处理透明图片&#xff0c;主要是考虑图片的叠加。 //主函数操作 Mat dest,srcAlpha;//-1表示读取带有alpha通道的图片 srcAlpha imread("1.png",-1); dest imread("2.png");//(0,0)设置对srcAlpha的叠加 mapToMat(srcAlpha, dest, 0, 0);void mapT…...

把PNG 图片设置透明

Photoshop做透明背景图片 必须用 另存为web所有格式(ctrlaltshifts). 还可以用他的ImageRadyle 这个保存的都是web格式的 (上面存的都是gif格式) 重要的是jpg格式是没有透明背景的 透明背景的要么是gif格式 要么就是png格式PS简单图标遮罩制作&#xff08;透明背景图片&#xf…...

如何用蓝牙实现无线定位(二)--信号塔设置

1. 配置BLE4.0模块 根据三点定位原理&#xff0c;本项目需要使用3个信号塔。3个信号塔的主体均为BLE4.0模块&#xff0c;需要把BLE4.0模块的AT指令设置为“从设备”。 方法为&#xff1a; &#xff08;1&#xff09;给控制板刷一套空的程序。初始打开arduino IDE或新建&#x…...

Normalize.css的作用

Normalize.css只是一个很小的css文件&#xff0c;但它在磨人的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。总之&#xff0c;Normalize.css是一种CSS reset的替代方案。 我们创造normalize.css有…...

pytorch中的normalize应用

torch.nn.functional.normalize(input, p2, dim1, eps1e-12, outNone)其中&#xff0c;p表示范数(这里是2范数)&#xff0c;dim表示计算范数的维度(默认为1)&#xff0c;eps是为了防止分母为0&#xff1b; pytorch中的normalize函数本质上就是针对某个维度进行归一化&#xff0…...

pytorch中的transforms.ToTensor和transforms.Normalize理解

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;往期回顾&#xff1a;卡尔曼滤波系列1——卡尔曼滤波    张氏标定法原理详解 &#x1f34a;近期目标&#xff1a;拥有5000粉丝 &#x1f34a;支持小苏&#xff1a;点赞&…...

学习pytorch中归一化transforms.Normalize

torchvison:计算机视觉工具包 包含 torchvison.transforms(常用的图像预处理方法)&#xff1b;torchvision.datasets(常用数据集的dataset实现&#xff0c;MNIST,CIFAR-10,ImageNet等)&#xff1b;torchvison.model(常用的模型预训练&#xff0c;AlexNet,VGG,ResNet,GoogleNe…...

python normalize函数_Python Wand normalize()用法及代码示例

原始图片&#xff1a;范例1&#xff1a;# Import library from Imagefrom wand.image import Image# Import the imagewith Image(filename ../geeksforgeeks.png) as image:# Clone the image in order to processwith image.clone() as normalize:# Invoke normalize functio…...

php normalize,PHP DOMNode normalize()用法及代码示例

DOMNode::normalize()函数是PHP中的内置函数&#xff0c;用于删除空文本节点并合并该节点及其所有子节点中的相邻文本节点。用法:void DOMNode::normalize( void )参数&#xff1a;此功能不接受任何参数。返回值&#xff1a;该函数不返回任何值。以下示例说明了PHP中的DOMNode:…...

reset.css normalize.css,normalize与css reset的区别

Normalize.css只是一个很小的css文件&#xff0c;相比于传统的CSS reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。也就是说&#xff0c;Normalize.css是一种CSS reset的替代方案。Normalize.css 保护了有价值的默认值reset通过为几乎所有的元素施加默认样式&am…...

python normalize函数_Python Pandas Series.dt.normalize用法及代码示例

Series.dt可用于以datetimelike的形式访问序列的值并返回几个属性。 Pandas Series.dt.normalize()函数将时间转换为午夜。日期时间的时间部分将转换为午夜&#xff0c;即00:00:00。这在时间无关紧要的情况下很有用。长度不变。时区不受影响。用法&#xff1a; Series.dt.norma…...

python normalize函数_Python normalize包_程序模块 - PyPI - Python中文网

normalize包是一个类生成器和工具包&#xff0c;对于编写“简单的旧数据结构”来包装来自网络源的数据在python对象中。它被称为“normalize”&#xff0c;因为它关注的是第一个normal关系数据库建模的形式。这是定义通常称为“记录”(或rows)。记录是定义的属性/属性集合(colu…...

tensorflow,pytorch中normalize方法

一、tf.linalg.normalize def normalize(tensor, ord"euclidean", axisNone, nameNone):"""Normalizes tensor along dimension axis using specified norm.This uses tf.linalg.norm to compute the norm along axis.This function can compute se…...

java normalize_Normalize.css的使用及下载

Normalize.css 只是一个很小的CSS文件&#xff0c;但它在默认的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS reset&#xff0c;Normalize.css是一种现代的、为HTML5准备的优质替代方案。Normalize.css现在已经被用于Twitter Bootstrap、HTML5 Boilerplate、GOV…...

Normalize.css介绍与使用

前言❤️ 不管现在有多么艰辛&#xff0c;我们也要做个生活的舞者 ❤️Normalize.css介绍与使用一、Normalize.css介绍与使用&#xff08;1&#xff09;什么是Normalize&#xff08;2&#xff09;Normalize vs Reset&#xff08;3&#xff09;如何使用 normalize.css&#xff0…...