Pandas基础02(DataFrame创建/索引/切片/属性/方法/层次化索引)
DataFrame数据结构
DataFrame
是一个二维表格的数据结构,类似于数据库中的表格或 Excel 工作表。它由多个 Series
组成,每个 Series
共享相同的索引。DataFrame
可以看作是具有列名和行索引的二维数组。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。
3.2.1 DataFrame的创建
最常用的方法是传递一个字典来创建。DataFrame以字典的键作为每一【列】的名称,以字典的值(一个数组)作为每一列。DataFrame会自动加上每一行的索引(和Series一样)。同Series一样,若传入的列与字典的键不匹配,则相应的值为NaN。
pd.DataFrame(data=None,index: 'Axes | None' = None,columns: 'Axes | None' = None,dtype: 'Dtype | None' = None,copy: 'bool | None' = None,
) -> 'None'
- 通过字典直接创建,行索引默认为0~N-1
aDict = {"Chinese":[100, 102, 108, 95, 88],"Math":[120, 118, 102, 98, 114],"English":[64, 98, 115, 102, 96]
}d = pd.DataFrame(aDict)
d
>>> Chinese Math English
0 100 120 64
1 102 118 98
2 108 102 115
3 95 98 102
4 88 114 96
- 指通过numpy二维数组创建
df = pd.DataFrame(np.random.randint(1, 10, (3, 4)), index=['a', 'b', 'c'], columns=['A', 'B', 'C', 'D'])
3.2.2 DataFrame的基本属性与方法
df = pd.DataFrame(np.random.randint(1, 10, (3, 4)), index=['a', 'b', 'c'], columns=['A', 'B', 'C', 'D'])
- values值:二维ndarray数组
df.values
>>> ndarray类型的二维数组
array([[7, 5, 3, 6],[6, 1, 2, 3],[5, 6, 6, 1]])
- columns:列索引
df.columns
>>> Index(['A', 'B', 'C', 'D'], dtype='object')
- index:行索引
df.index
>>> Index(['a', 'b', 'c'], dtype='object')
- shape:形状
df.shape
>>> (3, 4)
- head():查看前几条数据,默认5条
df.head(2)
- tail():查看后几条数据,默认5条
df.tail(2)
3.2.3 DataFrame的索引
索引优先对列进行操作,然后对行操作
df = pd.DataFrame(np.random.randint(1, 100, (3, 4)), index=['zs', 'ls', 'ww'], columns=['语文', '数学', '英语', '计算机'])
- 对列进行索引:返回列的Series对象
# 1.通过字典的方式取值
print(df['语文'])
print(df[['数学', '计算机']])
# 2.通过属性的方式取值
print(df.语文)
- 对行进行索引:返回行的Series对象
# 1.使用.loc[行索引名称]进行索引
print(df.loc['zs'])
print(df.loc[['zs', 'ww']])
# 2.使用.iloc[行索引整数]进行索引
print(df.iloc[0])
print(df.iloc[[1, 2]])
- 取DataFrame中的元素:返回元素的值
# 方法,用取列或取行的方式取到Series对象,之后和Series对象的去元素方法一致
# 先去列,再取行
print(df['语文']['zs'])
print(df.语文[0])
print(df.语文.zs)
print(df['语文'].iloc[0])
print(df['语文'].loc['zs'])
# 先取行,再取列
print(df.loc['zs']['语文'])
print(df.loc['zs', '语文'])
print(df.loc['zs'].语文)
print(df.iloc[0][0])
print(df.iloc[0, 0])
3.2.4 DataFrame的切片操作
- 切片:优先对行进行切片
# 1.行切片
print(df[1:3]) #直接切片:左闭右开
print(df.iloc[1:3]) #左闭右开
print(df["zs":"ls"]) #通过索引名切片,左闭右闭
print(df.loc['zs':'ls']) #左闭右闭# 2.列切片
# 列切片之前必须行切片,且只可以iloc和loc
print(df.iloc[:, 1:4])
print(df.loc[:, '数学':'计算机'])# 3.同时对行和列切片
print(df.iloc[1:3, 1:4])# 4.索引和切片一起使用
print(df.iloc[0, 1:3])
3.2.5 DataFrame运算
- 基本代数运算:所有元素均作相关运算
df = pd.DataFrame(np.random.randint(50, 100, (3, 4)), index=['zs', 'ls', 'ww'], columns=['语文', '数学', '英语', '计算机'])
print(df + 100)
print(df - 100)
print(df * 100)
print(df / 100)
print(df // 2)
print(df ** 2)
print(df % 2)
- DataFrame与DataFrame的运算
- 在运算中自动对齐索引
- 如果索引不对应,则补NaN
- DataFrame没有广播机制
df1 = pd.DataFrame(np.random.randint(50, 100, (3, 4)), index=['zs', 'ls', 'ww'], columns=['语文', '数学', '英语', '计算机'])
df2 = pd.DataFrame(np.random.randint(50, 100, (3, 4)), index=['zs', 'ls', 'ww'], columns=['语文', '数学', '英语', '计算机'])#对应索引相同元素相加
df1 + df2 #索引不相同时,索引不对应处为NaN
df3 = pd.DataFrame(np.random.randint(50, 100, (4, 5)), index=['zs', 'ls', 'ww', 'zl'], columns=['语文', '数学', '英语', '计算机', '软件开发'])
df1 + df3数学 英语 计算机 语文 软件开发
ls 138.0 141.0 123.0 138.0 NaN
ww 128.0 135.0 161.0 173.0 NaN
zl NaN NaN NaN NaN NaN
zs 132.0 111.0 162.0 146.0 NaN
#如果想要保留索引的值,不想出现NaN则需要调用add()函数
df1.add(df3, fill_value=0)数学 英语 计算机 语文 软件开发
ls 138.0 141.0 123.0 138.0 79.0
ww 128.0 135.0 161.0 173.0 64.0
zl 60.0 78.0 66.0 98.0 65.0
zs 132.0 111.0 162.0 146.0 65.0
- Series与DataFrame的运算
使用Pandas操作函数:
1.当axis=1:以列为单位操作(参数必须是列),对所有列都有效。(默认)
df1 = pd.DataFrame(np.random.randint(50, 100, (3, 4)), index=['zs', 'ls', 'ww'], columns=['语文', '数学', '英语', '计算机'])
s = pd.Series(np.random.randint(50, 100, (4,)), index=df1.columns)
print(df1 + s)
print(df1.add(s, axis=1))2.当axis=0:以行为单位操作(参数必须是行),对所有行都有效。
df1 = pd.DataFrame(np.random.randint(50, 100, (3, 4)), index=['zs', 'ls', 'ww'], columns=['语文', '数学', '英语', '计算机'])
s = pd.Series(np.random.randint(50, 100, (3,)), index=df1.index)
print(df1.add(s, axis=0))
3.3 层次化索引
Pandas 的层次化索引(Hierarchical Indexing)允许在一个 DataFrame 或 Series 中使用多个索引级别。这意味着数据可以在多个维度上进行组织和操作。通过层次化索引,可以简化复杂的数据结构,并提高对数据的访问效率。
3.1.1 层次化索引的创建
- 隐式创建:
DataFrame:最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组
data = np.random.randint(0, 100, (4, 4))
#这里“2214班”与“zhangsan”,“lisi”对应,“2215班”与"wangwu","zhaoliu"对应
index = [["2214班","2214班","2215班","2215班"],["zhangsan", "lisi", "wangwu", "zhaoliu"]
]columns = [["第一学期","第一学期","第二学期","第二学期"],["加权成绩", "平均成绩","加权成绩", "平均成绩"]
]df = pd.DataFrame(data, index=index, columns=columns)
df
Series:
data = np.random.randint(0, 100, (4, ))
index = [["2214班","2214班","2215班","2215班"],["zhangsan", "lisi", "wangwu", "zhaoliu"]
]
s = pd.Series(data=data, index=index)
s2214班 zhangsan 85lisi 98
2215班 wangwu 24zhaoliu 19
dtype: int32
- 显示创建:
1.使用数组创建:pd.MultiIndex.from_arrays()
# 使用数组创建
data = np.random.randint(0, 100, (4, 4))
index = pd.MultiIndex.from_arrays([["2214班","2214班","2215班","2215班"],["zhangsan", "lisi", "wangwu", "zhaoliu"]
])columns = pd.MultiIndex.from_arrays([["第一学期","第一学期","第二学期","第二学期"],["加权成绩", "平均成绩","加权成绩", "平均成绩"]
])df = pd.DataFrame(data, index=index, columns=columns)
df
2.使用元组创建:pd.MultiIndex.from_tuples()
# 使用元组创建
data = np.random.randint(0, 100, (4, 4))
index = pd.MultiIndex.from_tuples((("2214班","zhangsan"),("2214班","lisi"),("2215班","wangwu"),("2215班","zhaoliu"))
) columns = pd.MultiIndex.from_tuples((("第一学期","加权成绩"),("第一学期","平均成绩"),("第二学期","加权成绩"),("第二学期","平均成绩"))
)df = pd.DataFrame(data, index=index, columns=columns)
df
3.使用笛卡尔积创建:pd.MultiIndex.from_product()
使用数组创建
data = np.random.randint(0, 100, (4, 4))
index = pd.MultiIndex.from_arrays([["2214班","2214班","2215班","2215班"],["zhangsan", "lisi", "wangwu", "zhaoliu"]
])columns = pd.MultiIndex.from_product([["第一学期","第二学期"],["加权成绩", "平均成绩"]
])df = pd.DataFrame(data, index=index, columns=columns)
df
3.1.2 层次化索引与切片
- Series类型
data = np.random.randint(0, 100, (4, ))
index = [["A2214班","A2214班","A2215班","A2215班"],["zhangsan", "lisi", "wangwu", "zhaoliu"]
]
s = pd.Series(data=data, index=index)
s
(1)索引
# 显示索引
#层次化索引需要依次访问每层索引以获取该索引下的Series
print(s['A2214班'])
print(s['A2214班']['zhangsan'])
print(s['A2214班', 'zhangsan'])
print(s['A2214班'][0])
print(s['A2214班'][['zhangsan', 'lisi']])
print(s.loc['A2214班'])
print(s.A2214班)# 隐式索引:与Series的访问方式一致,无需考虑层次化索引
print(s[0])
print(s.iloc[0])
(2)切片
# 显式切片:需要一层层索引依次切片,不可跨索引切片
s['A2214班':'A2215班']
s['A2214班'][:]
s['zhangsan':'lisi'] #Series([], dtype: int32)#隐式切片:同Series的切片方式相同
s[0:3]
s.iloc[0:2]
- DataFrame类型
data = np.random.randint(0, 100, (4, 4))
index = pd.MultiIndex.from_arrays([["A2214班","A2214班","A2215班","A2215班"],["zhangsan", "lisi", "wangwu", "zhaoliu"]
])columns = pd.MultiIndex.from_product([["第一学期","第二学期"],["加权成绩", "平均成绩"]
])df = pd.DataFrame(data, index=index, columns=columns)
df
(1)索引:先列后行
# 对列进行索引(默认):若索引包含多行返回DataFrame,若索引只包括单行返回Serires
# 1.显示索引:需要一层层索引访问
df['第一学期']
df['第一学期']['加权成绩']
df.第一学期
df[['第一学期','第二学期']]# 2.隐式索引: 无需考虑多次索引,但要先访问行
df.iloc[:,0]# 对行进行索引:若索引包含多行返回DataFrame,若索引只包括单行返回Serires
# 1.显示索引:需要一层层索引访问
df.loc['A2214班']
df.loc['A2214班'].loc['zhangsan']# 2.隐式索引:无需考虑多次索引
df.iloc[2]
(2)切片:先行后列(建议使用隐式索引)
# 行切片
df.iloc[0:3]
# 列切片
df.iloc[, 0:3]
3.1.3 索引的堆叠
索引堆叠通常指的是对 DataFrame 或 Series 的 层次化索引(MultiIndex) 进行堆叠和展开操作。这种操作可以将数据的索引层级转换,或是将数据的多个层级组合成一个新的层级。
- stack(level: ‘Level’ = -1):将列转为行
# 默认;level=-1是将列的最后一层索引转变为行的最后一层索引
# level=n是将列的最后n层索引转变为行的最后一层索引
# 执行后,返回的 DataFrame 会有一个层次化的索引,原本的DataFrame不改变
data = np.random.randint(0, 100, (4, 4))
index = pd.MultiIndex.from_arrays([["2214班","2214班","2215班","2215班"],["zhangsan", "lisi", "wangwu", "zhaoliu"]
])columns = pd.MultiIndex.from_product([["第一学期","第二学期"],["加权成绩", "平均成绩"]
])df = pd.DataFrame(data, index=index, columns=columns)
display(df, df.stack())

- unstack():将行转为列
df.unstack() #默认将行的最后一个索引转换为列的最后一个索引,由于2214班无wangwu等人所以会NaN填写空缺
3.1.4 索引的聚合
# 每一行相加:axis = 0(默认)
print(df.sum())
print(df.sum(axis=0))
print(df.sum(axis=0, level=0)) #计算行的第0层索引对应的和
print(df.sum(axis=0, level=1)) #计算行的第1层索引对应的和# 每一列相加:axis = 1
print(df.sum(axis=1, level=0)) #计算列的第0层索引对应的和
print(df.sum(axis=1, level=1)) #计算列的第1层索引对应的和# # 所有元素之和
df.values.sum()
相关文章:
Pandas基础02(DataFrame创建/索引/切片/属性/方法/层次化索引)
DataFrame数据结构 DataFrame 是一个二维表格的数据结构,类似于数据库中的表格或 Excel 工作表。它由多个 Series 组成,每个 Series 共享相同的索引。DataFrame 可以看作是具有列名和行索引的二维数组。设计初衷是将Series的使用场景从一维拓展到多维。…...
适配Android16
Android16新特性 Android 16带来了许多新特性和改进,提升了系统的流畅度、用户体验和安全性。对于应用开发者来说,适配Android 16可以确保应用在该版本上的兼容性和性能,同时也可以利用其新特性为用户提供更好的服务。以下是Android 16的一些…...
.NET MAUI进行UDP通信(二)
上篇文章有写过一个简单的demo,本次对项目进行进一步的扩展,添加tabbar功能。 1.修改AppShell.xaml文件,如下所示: <?xml version"1.0" encoding"UTF-8" ?> <Shellx:Class"mauiDemo.AppShel…...
生信软件管家——conda vs pip
pip vs conda: 安装过python包的人自然两种管理软件都用过, Pip install和Conda install在Python环境中用于安装第三方库和软件包,但它们在多个方面存在显著的区别 总的来说: pip是包管理软件,conda既是包管理软件&…...
从替代到覆盖:暴雨信创服务器打开市场新局面
进入2025年,全球局势更加变幻莫测,高科技领域越来越受到全球局势影响。美国前任总统拜登在卸任前,特别颁布限制GPU产品出口法案。新任总统特朗普上任第一天,废除了多项之前法案,但显示技术交流的内容一条没变。 在如此艰难的局面下,我国信创市场的发展显得尤为重要,国家也从政策…...
HTML5 常用事件详解
在现代 Web 开发中,用户交互是提升用户体验的关键。HTML5 提供了丰富的事件机制,允许开发者监听用户的操作(如点击、拖动、键盘输入等),并触发相应的逻辑处理。本文将详细介绍 HTML5 中的常用事件,包括鼠标…...
使用 Pipeline 提高 Redis 批量操作性能
使用 Pipeline 提高 Redis 批量操作性能 在 Redis 中,Pipeline(管道) 是一种用于提高批量操作性能的技术。它允许客户端一次性发送多个命令到 Redis 服务器,而不需要等待每个命令的单独响应,从而减少了**网络往返&…...
ElasticSearch-文档元数据乐观并发控制
文章目录 什么是文档?文档元数据文档的部分更新Update 乐观并发控制 最近日常工作开发过程中使用到了 ES,最近在检索资料的时候翻阅到了 ES 的官方文档,里面对 ES 的基础与案例进行了通俗易懂的解释,读下来也有不少收获࿰…...
每日一题--合并二叉树
合并二叉树 问题描述 已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:如果节点存在于两棵树中,则将节点值相加;如果某个节点在一棵树中不存在,则直接使用另一棵树的节点值。例如: 两颗二叉树如下&a…...
【喜讯】海云安荣获“数字安全产业贡献奖”
近日,国内领先的数字化领域独立第三方调研咨询机构数世咨询主办的“2025数字安全市场年度大会”在北京成功举办。在此次大会上,海云安的高敏捷信创白盒产品凭借其在AI大模型技术方面的卓越贡献和突出的技术创新能力,荣获了“数字安全产业贡献…...
数字转中文大写JAVA
一般在收据打印过程中,可能会要求展示中文大写金额,以下提供两种实现。 1正常代码逻辑处理 优点:易理解,好维护 缺点:代码较长 package com.test;import java.math.BigDecimal;public class NumberToChinese {priv…...
如何使用 pytest-html 创建自定义 HTML 测试报告
关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 测试 Python 代码对于提高代码质量、检测漏洞或意外行为至关重要。 但测试结果又该…...
思科交换机telnet配置案例
目录 1.telnet简述2.网络拓扑3.设备说明4.网络配置4.1 电脑PC ip设置4.2 网络交换机telnet配置 5.小结 1.telnet简述 Telnet是远程登录服务的一个协议,该协议定义了远程登录用户与服务器交互的方式。它允许用户在一台联网的计算机上登录到一个远程分时系统中&#…...
LabVIEW进行可靠性测试时有哪些常见的问题
在进行LabVIEW开发和测试时,尤其是用于可靠性测试,可能会遇到一些常见的问题。以下是一些常见问题及其解决方法: 1. 数据采集卡与硬件兼容性问题 问题描述:某些数据采集卡(DAQ)与硬件设备的兼容性问题可能…...
三年级数学知识边界总结思考-下册
目录 一、背景二、过程1.位置与方向小学三年级课本上位置与方向的知识点、由来、作用和意义一、位置与方向的知识点二、位置与方向的由来三、位置与方向的作用和意义 2.复试统计表小学三年级课本上复式统计表的知识点、由来、作用和意义一、复式统计表的知识点二、复式统计表的…...
假期学习【Java程序】的实施方案
一、前期准备 1.1 设定明确的学习目标 在假期开始之前,明确学习Java的具体目标至关重要。这些目标应该具体、可衡量且符合实际。例如,如果你是初学者,可以设定目标为掌握Java的基础语法、理解面向对象编程的核心概念,并能够编写…...
Java 大视界 -- Java 大数据中的知识图谱构建与应用(62)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
Macos下交叉编译安卓的paq8px压缩算法
官方没有android的编译方法,自己编写脚本在macos下交叉编译. 下载源码: git clone https://github.com/hxim/paq8px.git 稍旧的ndk并不能编译成功,需要下载最新的ndkr27c, 最后是使用clang来编译。 编译build.sh export ANDROID_NDK/Vol…...
npm启动前端项目时报错(vue) error:0308010C:digital envelope routines::unsupported
vue 启动项目时,npm run serve 报下面的错: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:67:19) at Object.createHash (node:crypto:133:10) at FSReqCallback.readFileAfterClose [as on…...
设计模式-建造者模式、原型模式
目录 建造者模式 定义 类图 优缺点 角色 建造者模式和工厂模式比较 使用案例 原型模式 定义 类图 优缺点 应用场景 应用类型 浅克隆 深克隆 建造者模式 定义 将一个复杂的对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,…...
Android vendor.img中文件执行权问题
问题 Android 9、11往vendor.img增加文件,烧写到设备后发现增加的可执行文件没有执行权限。经过漫长查找,终于找到了问题的根源,谨以此篇献给哪些脚踏实地的人们。 根本原因 system/core/libcutils/fs_config.cpp文件,fs_confi…...
MATLAB 如何避免复杂shp文件对inpolygon的影响
**任务描述:**当我想用inpolygon函数将属于非洲的pixel选出来时,发现因为周边小岛的影响,pixel选取有问题,如下图。 第一种解决办法: 首先将复杂shp文件查分成简单的shp文件,即将不相交的元素分离开 [QGIS…...
Golang Gin系列-8:单元测试与调试技术
在本章中,我们将探讨如何为Gin应用程序编写单元测试,使用有效的调试技术,以及优化性能。这包括设置测试环境、为处理程序和中间件编写测试、使用日志记录、使用调试工具以及分析应用程序以提高性能。 为Gin应用程序编写单元测试 设置测试环境…...
【论文阅读】Equivariant Diffusion Policy
Northeastern University 2Boston Dynamics AI Institute 摘要 近期研究表明,扩散模型是一种有效的方法,可用于在行为克隆中学习由演示数据产生的多模态分布。然而,这种方法的一个缺点是需要学习去噪函数,这比学习显式策略要复杂…...
[ACTF2020 新生赛]BackupFile1
题目 翻译,尝试找出源文件! 扫目录使用参数-e * python dirsearch.py -u http://0c3b21c0-d360-4baa-8b97-aa244f4c4825.node5.buuoj.cn:81/ -e * 最终扫描到一个文件名为:/index.php.bak的文件,把备份文件下载下来 源码 <?…...
手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)
手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍) 目录 手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)DDPM 原理图Stable Diffusion 原理Stable Diffusion的原理解释Stable Diffusion 和 Diffus…...
ASP.NET Core WebAPI的异步及返回值
目录 Action方法的异步 Action方法参数 捕捉URL占位符 捕捉QueryString的值 JSON报文体 其他方式 Action方法的异步 Action方法既可以同步也可以异步。异步Action方法的名字一般不需要以Async结尾。Web API中Action方法的返回值如果是普通数据类型,那么返回值…...
doris: CSV导入数据
本文介绍如何在 Doris 中导入 CSV 格式的数据文件。Doris 支持灵活的 CSV 格式配置,包括自定义分隔符、字段包围符等,并提供多种导入方式以满足不同场景的数据导入需求。 导入方式 Doris 支持以下方式导入 CSV 格式数据: Stream LoadBro…...
数据标注开源框架 Label Studio
数据标注开源框架 Label Studio Label Studio 是一个开源的、灵活的数据标注平台,旨在帮助开发者和数据科学家轻松创建高质量的训练数据集。它支持多种类型的数据(如文本、图像、音频、视频等)以及复杂的标注任务(如分类、命名实体…...
Next.js 实战 (十):中间件的魅力,打造更快更安全的应用
什么是中间件? 在 Next.js 中,中间件(Middleware)是一种用于处理每个传入请求的功能。它允许你在请求到达页面之前对其进行修改或响应。 通过中间件,你可以实现诸如日志记录、身份验证、重定向、CORS配置、压缩等任务…...
js/ts数值计算精度丢失问题及解决方案
文章目录 概念及问题问题分析解决方案方案一方案二方案其它——用成熟的库 概念及问题 js中处理浮点数运算时会出现精度丢失。js中整数和浮点数都属于Number数据类型,所有的数字都是以64位浮点数形式存储,整数也是如此。所以打印x.00这样的浮点数的结果…...
Linux之Tcp粘包笔记
目录 一.网络传输四层模型 二.数据传输中数据包传输的两个限制概念 三.数据传输的中粘包问题 四.数据组装的原因 Nagle算法原理: 五.关闭Nagle优化处理粘包问题吗? 六.粘包处理方法 a.设置消息边界: b.定义消息长度: 七.UDP是否会出…...
StarRocks 安装部署
StarRocks 安装部署 StarRocks端口: 官方《配置检查》有服务端口详细描述: https://docs.starrocks.io/zh/docs/deployment/environment_configurations/ StarRocks架构:https://docs.starrocks.io/zh/docs/introduction/Architecture/ Sta…...
【深度学习|迁移学习】渐进式学习策略 (Progressive Learning Strategy)详述(一)
【深度学习|迁移学习】渐进式学习策略 (Progressive Learning Strategy)详述(一) 【深度学习|迁移学习】渐进式学习策略 (Progressive Learning Strategy)详述(一) 文章目录 【深度学习|迁移学习】渐进式学习策略 (Progressive L…...
关注搜索引擎蜘蛛压力
以前在建站的时候,他们说蜘蛛来抓取的频率越多越好,因为蜘蛛来抓取说明了网站更新速度快,受搜索引擎的欢迎,但是在最近的网站统计中,发现很多蜘蛛爬取的频次非常的高,比如有的蜘蛛一天能来网站几万次&#…...
Windows上通过Git Bash激活Anaconda
在Windows上配置完Anaconda后,普遍通过Anaconda Prompt激活虚拟环境并执行Python,如下图所示: 有时需要连续执行多个python脚本时,直接在Anaconda Prompt下可以通过在以下方式,即命令间通过&&连接,…...
【架构面试】一、架构设计认知
涉及分布式锁、中间件、数据库、分布式缓存、系统高可用等多个技术领域,旨在考查候选人的技术深度、架构设计能力与解决实际问题的能力。 1. 以 Redis 是否可以作为分布式锁为例: 用 Redis 实现分布式锁会存在哪些问题? 死锁:如果…...
【Redis】常见面试题
什么是Redis? Redis 和 Memcached 有什么区别? 为什么用 Redis 作为 MySQL 的缓存? 主要是因为Redis具备高性能和高并发两种特性。 高性能:MySQL中数据是从磁盘读取的,而Redis是直接操作内存,速度相当快…...
解决vsocde ssh远程连接同一ip,不同端口情况下,无法区分的问题
一般服务器会通过镜像分身或者容器的方式,一个ip分出多个端口给多人使用,但如果碰到需要连接同一user,同一个ip,不同端口的情况,vscode就无法识别,如下图所示,vscode无法区分该ip下不同端口的连接ÿ…...
Java设计模式—观察者模式
观察者模式 目录 观察者模式1、什么是观察者模式?2、观察者模式优缺点及注意事项?3、观察者模式实现?4、手写线程安全的观察者模式? 1、什么是观察者模式? - 实例:现实生活中很多事物都是依赖存在的&#x…...
Lua 环境的安装
1.安装Lua运行环境 本人采用的是在windows系统中使用cmd指令方式进行安装,安装指令如下: winget install "lua for windows" 也曾使用可执行程序安装过,但由于电脑是加密电脑,最后都已失败告终。使用此方式安装可以安…...
MySQL回表详解:原理、优化与实践
1. 简介 在MySQL的查询过程中,“回表”(又叫“二次查询”)是一个常见的概念,尤其在使用覆盖索引(covering index)或联合索引(composite index)时,回表操作常常会对查询性…...
算法——位运算
位运算知识点 01.01. 判定字符是否唯一 面试题 01.01. 判定字符是否唯一 - 力扣(LeetCode) class Solution { public:bool isUnique(string astr) {//鸽巢原理if(astr.size()>26) return false;int bitmap 0;for(auto ch:astr){char i ch-a;//判断…...
CVE-2025-0411 7-zip 漏洞复现
文章目录 免责申明漏洞描述影响版本漏洞poc漏洞复现修复建议 免责申明 本文章仅供学习与交流,请勿用于非法用途,均由使用者本人负责,文章作者不为此承担任何责任 漏洞描述 此漏洞 (CVSS SCORE 7.0) 允许远程攻击者绕…...
深度学习笔记——循环神经网络之LSTM
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍面试过程中可能遇到的循环神经网络LSTM知识点。 文章目录 文本特征提取的方法1. 基础方法1.1 词袋模型(Bag of Words, BOW)工作…...
超分辨率体积重建实现术前前列腺MRI和大病理切片组织病理学图像的3D配准
摘要: 磁共振成像(MRI)在前列腺癌诊断和治疗中的应用正在迅速增加。然而,在MRI上识别癌症的存在和范围仍然具有挑战性,导致即使是专家放射科医生在检测结果上也存在高度变异性。提高MRI上的癌症检测能力对于减少这种变异性并最大化MRI的临床效用至关重要。迄今为止,这种改…...
React第二十五章(受控组件/非受控组件)
React 受控组件理解和应用 React 受控组件 受控组件一般是指表单元素,表单的数据由React的 State 管理,更新数据时,需要手动调用setState()方法,更新数据。因为React没有类似于Vue的v-model,所以需要自己实现绑定事件…...
Vue演练场基础知识(七)插槽
为学习Vue基础知识,我动手操作通关了Vue演练场,该演练场教程的目标是快速体验使用 Vue 是什么感受,设置偏好时我选的是选项式 单文件组件。以下是我结合深入指南写的总结笔记,希望对Vue初学者有所帮助。 文章目录 十五. 插槽插槽…...
16 分布式session和无状态的会话
在我们传统的应用中session存储在服务端,减少服务端的查询压力。如果以集群的方式部署,用户登录的session存储在该次登录的服务器节点上,如果下次访问服务端的请求落到其他节点上就需要重新生成session,这样用户需要频繁的登录。 …...
docker 部署 java 项目详解
在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署。今天我们以若依项目为例,总结下部署项目的整体流程。简单来说,第一步:安装项目所需的中间件;第二步࿱…...