【Python】数据分析+数据挖掘——探索Pandas中的数据筛选
1. 前言
当涉及数据处理和分析时,Pandas是Python编程语言中最强大、灵活且广泛使用的工具之一。Pandas提供了丰富的功能和方法,使得数据的选择、筛选和处理变得简单而高效。在本博客中,我们将重点介绍Pandas中数据筛选的关键知识点,包括条件索引、逻辑操作符、query()
方法以及其他一些常用技巧~
2. 筛选
在Python和Pandas库中,索引是一种用于标识和访问数据的重要概念。索引可以是整数、标签、日期等类型,它允许我们按照指定的标记来查找、选择和操作数据。本文重点介绍的是Pandas中的筛选操作,我们先来简单回顾一下Python中一些筛选的相关操作。
在Python中列表、元组、字符串、字典都是支持索引的数据结构。索引从0开始,表示数据元素在序列中的位置。
例如,对于列表可以通过list[0]来访问列表的一个元素
In[0]:
list_filter = [1,2,3,4,5]
print(list_filter[0])
print(list_filter[1])
out[0]:
1
2
对于字符串,也可以使用索引来访问单个字符
In[1]:
string_filter = "hello"
print(string_filter[0])
print(string_filter[1])
out[1]:
h
e
对于元组亦是如此
In[2]:
tuple_filter = (1, 2, 3, 4)
print(tuple_filter[0])
print(tuple_filter[2])
out[2]:
1
3
对于字典则是可以通过’‘键’'来索引字典中的值
In[3]:
dict_filter = {'1': 'one', '2': 'two', '3': 'three'}
print(dict_filter['1'])
print(dict_filter['2'])
out[3]:
one
two
除此之外你也可以通过切片索引、负数索引来进行筛选操作在此就不在赘述了
案例数据表university_rank.csv
2.1 整数位置索引筛选
df.iloc
是Pandas中用于整数位置索引(Integer Location Indexing)的一种属性,用于访问DataFrame或Series中的数据。iloc
允许你使用整数位置来选择特定的行和列,类似于Python中的列表索引。
语法 df.iloc[row_index, column_index]
其中的row_index和column_index可以是单个整数、切片或者列表
我们先来尝试一下整行筛选
df.iloc[<start_loc>:<end_loc>]
,这里需要注意的是end_loc
是取不到的,比如df.iloc[0:2]
,从0开始,只能取到0,1。
In[4]:
import pandas as pd
df = pd.read_csv("university_rank.csv") # 读取案例数据表
df # 展示数据表,跟print一样的作用
out[4]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
0 | 哈佛大学 | 1 | 北美 | 工程 | 学术声誉 |
1 | 牛津大学 | 2 | 欧洲 | 医学 | 科研产出 |
2 | 北京大学 | 3 | 亚洲 | 商学 | 国际影响力 |
3 | 悉尼大学 | 4 | 大洋洲 | 计算机科学 | 教学质量 |
4 | 圣保罗大学 | 5 | 南美 | 艺术 | 学生满意度 |
... | ... | ... | ... | ... | ... |
95 | 圣保罗国立大学 | 96 | 南美 | 计算机科学 | 研究生录取率 |
96 | 约翰内斯堡大学 | 97 | 非洲 | 环境科学 | 学术声誉 |
97 | 麦吉尔大学 | 98 | 北美 | 艺术 | 学生满意度 |
98 | 伦敦政治经济学院 | 99 | 欧洲 | 法律 | 国际影响力 |
99 | 东京大学 | 100 | 亚洲 | 教育 | 毕业生就业率 |
100 rows × 5 columns
In[5]:
df.iloc[0:2] # 对案例数据表进行整行筛选
out[5]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
0 | 哈佛大学 | 1 | 北美 | 工程 | 学术声誉 |
1 | 牛津大学 | 2 | 欧洲 | 医学 | 科研产出 |
行能切边,那列能不能切片呢?答案当然是能,只需要用’ , '来分割行列之间的索引即可。
In[6]:
df.iloc[0:2, 0:3]
out[6]:
大学名称 | 排名 | 地区 | |
---|---|---|---|
0 | 哈佛大学 | 1 | 北美 |
1 | 牛津大学 | 2 | 欧洲 |
补充:我们知道在Pandas中不仅有DataFrame还有Series,在Series中我们也可以使用df.iloc[index]
来进行索引,其中index可以是单个整数、切片或者列表
In[7]:
data = [1, 2, 3, 4, 5]
series = pd.Series(data) # 创建一个Series类型的数据# 使用整数位置索引访问数据
print(series.iloc[0])
print(series.iloc[1:3])
out[7]:
1
2,3
2.2 标签索引筛选
df.loc
是Pandas中用于标签索引的一种属性,用于访问DataFrame或Series中的数据。loc
允许你使用标签来选择特定的行和列,这使得索引更加灵活,可以根据标签选择数据,也可以使用条件来筛选。
语法 df.loc[row_label, column_label]
其中的row_label和column_label可以是单个整数、切片或者列表
我们先来尝试一下整行筛选,df.loc
与绝对值筛选的区别是,若使用df.loc[0:4]
,那么将会筛选从索引为0,到索引为4的所有列
In[8]:
df.loc[0:4]
out[8]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
0 | 哈佛大学 | 1 | 北美 | 工程 | 学术声誉 |
1 | 牛津大学 | 2 | 欧洲 | 医学 | 科研产出 |
2 | 北京大学 | 3 | 亚洲 | 商学 | 国际影响力 |
3 | 悉尼大学 | 4 | 大洋洲 | 计算机科学 | 教学质量 |
4 | 圣保罗大学 | 5 | 南美 | 艺术 | 学生满意度 |
如果不想要[0:4]中间的部分,只想要index=0 和 index=4的行,给它们中间的’:‘换成’,'加一个列表嵌套就行,简单来说就是使用标签列表来筛选
In[9]:
df.loc[[0, 4]]
out[9]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
0 | 哈佛大学 | 1 | 北美 | 工程 | 学术声誉 |
4 | 圣保罗大学 | 5 | 南美 | 艺术 | 学生满意度 |
在此就不再赘述Series的df.loc
了基本用法与上类似,不过是从多维转为了一维而已。
2.3 多重索引筛选
df.xs
是Pandas中的一种方法,用于在DataFrame中根据指定的标签或位置(行或列)获取跨越多个层次的数据。它主要用于处理具有多层索引的DataFrame
df.xs(# 要获取的行或列的标签或位置key, # 可选参数,用于指定获取行还是列。默认为行,也可以设置为1(列)axis = 0,# 可选参数,用于指定多层索引的级别。只在有层次化索引时才需要设置level, # 可选参数,指定是否丢弃返回结果中的索引级别,默认为Truedrop_level = True
)
In[10]:
df = pd.read_csv("university_rank.csv", index_col=["排名", "地区"]) # 读取案例数据表并设置双重索引
df
out[10]:
大学名称 | 学科领域 | 排名依据 | ||
---|---|---|---|---|
排名 | 地区 | |||
1 | 北美 | 哈佛大学 | 工程 | 学术声誉 |
2 | 欧洲 | 牛津大学 | 医学 | 科研产出 |
3 | 亚洲 | 北京大学 | 商学 | 国际影响力 |
4 | 大洋洲 | 悉尼大学 | 计算机科学 | 教学质量 |
5 | 南美 | 圣保罗大学 | 艺术 | 学生满意度 |
... | ... | ... | ... | ... |
96 | 南美 | 圣保罗国立大学 | 计算机科学 | 研究生录取率 |
97 | 非洲 | 约翰内斯堡大学 | 环境科学 | 学术声誉 |
98 | 北美 | 麦吉尔大学 | 艺术 | 学生满意度 |
99 | 欧洲 | 伦敦政治经济学院 | 法律 | 国际影响力 |
100 | 亚洲 | 东京大学 | 教育 | 毕业生就业率 |
100 rows × 3 columns
In[11]:
df.xs('北美', level=1)
out[11]:
大学名称 | 学科领域 | 排名依据 | |
---|---|---|---|
排名 | |||
1 | 哈佛大学 | 工程 | 学术声誉 |
7 | 麦吉尔大学 | 教育 | 校友网络 |
11 | 斯坦福大学 | 工程 | 研究成果 |
17 | 麦吉尔大学 | 教育 | 毕业生就业率 |
21 | 加州理工学院 | 工程 | 学术声誉 |
28 | 麦吉尔大学 | 医学 | 教学质量 |
32 | 斯坦福大学 | 经济学 | 校友网络 |
38 | 麦吉尔大学 | 艺术 | 学生满意度 |
42 | 加州理工学院 | 社会科学 | 校友网络 |
48 | 麦吉尔大学 | 艺术 | 学生满意度 |
52 | 斯坦福大学 | 社会科学 | 校友网络 |
58 | 麦吉尔大学 | 艺术 | 学生满意度 |
62 | 加州理工学院 | 社会科学 | 校友网络 |
68 | 麦吉尔大学 | 艺术 | 学生满意度 |
72 | 斯坦福大学 | 社会科学 | 校友网络 |
78 | 麦吉尔大学 | 艺术 | 学生满意度 |
82 | 加州理工学院 | 社会科学 | 校友网络 |
88 | 麦吉尔大学 | 艺术 | 学生满意度 |
92 | 斯坦福大学 | 社会科学 | 校友网络 |
98 | 麦吉尔大学 | 艺术 | 学生满意度 |
2.4 多条件索引筛选
在Pandas中,你可以使用多个条件来进行多条件索引。有几种方法可以实现多条件索引,其中一些常用的方法如下
- 使用
&
和|
操作符: 你可以使用&
表示"与"条件,|
表示"或"条件。通过将条件括在圆括号中,可以确保优先级正确 - 使用
query()
方法:query()
方法允许你使用字符串表示多个条件,更加直观和简洁 - 使用
isin()
方法:isin()
方法允许你检查某一列是否包含指定的多个值,然后将条件应用于DataFrame
2.4.1 使用&
和|
操作符
语法df[(option_one) &/| (option_two)...]
其中option_one和option_two都是筛选的条件,结果取决于中间的连接符
In[12]:
df = pd.read_csv("university_rank.csv") # 读取一下案例数据表
df
out[12]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
0 | 哈佛大学 | 1 | 北美 | 工程 | 学术声誉 |
1 | 牛津大学 | 2 | 欧洲 | 医学 | 科研产出 |
2 | 北京大学 | 3 | 亚洲 | 商学 | 国际影响力 |
3 | 悉尼大学 | 4 | 大洋洲 | 计算机科学 | 教学质量 |
4 | 圣保罗大学 | 5 | 南美 | 艺术 | 学生满意度 |
... | ... | ... | ... | ... | ... |
95 | 圣保罗国立大学 | 96 | 南美 | 计算机科学 | 研究生录取率 |
96 | 约翰内斯堡大学 | 97 | 非洲 | 环境科学 | 学术声誉 |
97 | 麦吉尔大学 | 98 | 北美 | 艺术 | 学生满意度 |
98 | 伦敦政治经济学院 | 99 | 欧洲 | 法律 | 国际影响力 |
99 | 东京大学 | 100 | 亚洲 | 教育 | 毕业生就业率 |
100 rows × 5 columns
In[13]:
df[(df.排名 >= 6) & (df.排名 <= 10)] # 使用多条件筛选
out[13]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
5 | 约翰内斯堡大学 | 6 | 非洲 | 法律 | 毕业生就业率 |
6 | 麦吉尔大学 | 7 | 北美 | 教育 | 校友网络 |
7 | 伦敦政治经济学院 | 8 | 欧洲 | 经济学 | 国际化程度 |
8 | 东京大学 | 9 | 亚洲 | 社会科学 | 研究生录取率 |
9 | 澳大利亚国立大学 | 10 | 大洋洲 | 环境科学 | 科研经费 |
2.4.2 query()方法
目前较常用的筛选语句,query()
方法是Pandas中的一种数据筛选方法,它允许你使用字符串表达式来选择DataFrame中满足特定条件的数据。query()
方法的设计灵感来自于SQL语言的查询语法,它能够简化复杂的条件筛选,并且能够处理大部分的数据选择需求。
语法:df.query(expr, inplace=False)
df.query(# 类sql语句expr# 是否在原df上修改,默认为Falseinplace = False
)
Tip:在expr语句中可以使用’@'来引用外部变量
In[14]:
df = pd.read_csv("university_rank.csv") # 读取一下案例数据表
expr = "排名 > 9 and 排名 < 16 and 地区 == '亚洲' " # 使用类sql语句多条件筛选DataFrame表
df.query(expr) # 查看使用query()方法查询的结果
out[14]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
12 | 清华大学 | 13 | 亚洲 | 商学 | 校友网络 |
In[15]:
limit = 5 # 设置一个外部变量
expr = "排名 > @limit and 排名 < 50 and 地区 == '亚洲' " # 在expr参数里面应用外部变量
df.query(expr) # 查看使用query()方法查询的结果
out[15]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
8 | 东京大学 | 9 | 亚洲 | 社会科学 | 研究生录取率 |
12 | 清华大学 | 13 | 亚洲 | 商学 | 校友网络 |
18 | 东京大学 | 19 | 亚洲 | 社会科学 | 国际化程度 |
22 | 香港大学 | 23 | 亚洲 | 商学 | 国际影响力 |
29 | 东京大学 | 30 | 亚洲 | 艺术 | 学生满意度 |
33 | 清华大学 | 34 | 亚洲 | 医学 | 学术声誉 |
39 | 东京大学 | 40 | 亚洲 | 教育 | 毕业生就业率 |
43 | 香港大学 | 44 | 亚洲 | 工程 | 教学质量 |
若想对数量进行控制,那么也可以使用.head()
方法或者.tail()
方法来进行嵌套查询
In[16]:
df.query(expr).head(3)
out[16]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
8 | 东京大学 | 9 | 亚洲 | 社会科学 | 研究生录取率 |
12 | 清华大学 | 13 | 亚洲 | 商学 | 校友网络 |
18 | 东京大学 | 19 | 亚洲 | 社会科学 | 国际化程度 |
2.4.3 isin()方法(布尔索引筛选)
isin()
是Pandas中的一种方法,用于检查DataFrame或Series中的元素是否包含在指定的列表、集合或Series中。isin()
方法返回一个布尔值的Series,其中元素为True表示对应的元素在指定的集合中,False表示不在其中。
语法df.col_name.isin(values)
或者df.isin(values)
该方法会返回一个bool数列,其中values一般为一个列表、集合或Series,用于指定待检查的元素集合。
In[17]:
df = pd.read_csv("university_rank.csv") # 读取一下案例数据表
df # 展示案例数据表
out[17]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
0 | 哈佛大学 | 1 | 北美 | 工程 | 学术声誉 |
1 | 牛津大学 | 2 | 欧洲 | 医学 | 科研产出 |
2 | 北京大学 | 3 | 亚洲 | 商学 | 国际影响力 |
3 | 悉尼大学 | 4 | 大洋洲 | 计算机科学 | 教学质量 |
4 | 圣保罗大学 | 5 | 南美 | 艺术 | 学生满意度 |
... | ... | ... | ... | ... | ... |
95 | 圣保罗国立大学 | 96 | 南美 | 计算机科学 | 研究生录取率 |
96 | 约翰内斯堡大学 | 97 | 非洲 | 环境科学 | 学术声誉 |
97 | 麦吉尔大学 | 98 | 北美 | 艺术 | 学生满意度 |
98 | 伦敦政治经济学院 | 99 | 欧洲 | 法律 | 国际影响力 |
99 | 东京大学 | 100 | 亚洲 | 教育 | 毕业生就业率 |
100 rows × 5 columns
In[18]:
df.排名.isin([1, 5, 6])
out[18]:
0 True
1 False
2 False
3 False
4 True...
95 False
96 False
97 False
98 False
99 False
Name: 排名, Length: 100, dtype: bool
现在返回是一个bool列表,想要获取到筛选后的数据在外面套上一层df就行了
In[19]:
df[df.排名.isin([1, 5, 6])]
out[19]:
大学名称 | 排名 | 地区 | 学科领域 | 排名依据 | |
---|---|---|---|---|---|
0 | 哈佛大学 | 1 | 北美 | 工程 | 学术声誉 |
4 | 圣保罗大学 | 5 | 南美 | 艺术 | 学生满意度 |
5 | 约翰内斯堡大学 | 6 | 非洲 | 法律 | 毕业生就业率 |
Tips
- 在Pandas中可以使用
~
进行反向筛选,即剔除满足条件的。 - 也可以使用
drop()
方法来删除满足的条件列和行 - 在进行范围筛选的使用也可以使用
between()
方法
结束语
如果有疑问欢迎大家留言讨论,你如果觉得这篇文章对你有帮助可以给我一个免费的赞吗?我们之间的交流是我最大的动力!
相关文章:

【Python】数据分析+数据挖掘——探索Pandas中的数据筛选
1. 前言 当涉及数据处理和分析时,Pandas是Python编程语言中最强大、灵活且广泛使用的工具之一。Pandas提供了丰富的功能和方法,使得数据的选择、筛选和处理变得简单而高效。在本博客中,我们将重点介绍Pandas中数据筛选的关键知识点ÿ…...
[数据集][目标检测]天牛数据集目标检测数据集VOC格式3050张
数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):3050 标注数量(xml文件个数):3050 标注类别数:1 标注类别名称:["longicorn"] …...

python_day16_设计模式
“”“单例模式”“” “”“工厂模式”“” class Person:passclass Worker(Person):passclass Student(Person):passclass Teacher(Person):passclass Factory:def get_person(self, p_type):if p_type w:return Worker()elif p_type s:return Student()else:return Te…...

uniapp开发小程序-实现中间凸起的 tabbar
一、效果展示: 二、代码实现: 1.首先在pages.json文件中进行tabbar的样式和列表配置,代码如下: {"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/p…...

Vue引入与Vue拦截原理
1. vue引入 第一种方法:在线引入 <script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 第二种方法:本地引入 2. Vue拦截原理——例题 el用于绑定id,data用于定义数据如下例题 <!DOCTYPE html&…...

2023年电赛---运动目标控制与自动追踪系统(E题)OpenMV方案
前言 (1)废话少说,很多人可能无法访问GitHub,所以我直接贴出可能要用的代码。此博客还会进行更新,先贴教程和代码 (2)视频教程: https://singtown.com/learn/49603/ (3&a…...

6G内存运行Llama2-Chinese-7B-chat模型
6G内存运行Llama2-Chinese-7B-chat模型 Llama2-Chinese中文社区 第一步: 从huggingface下载 Llama2-Chinese-7b-Chat-GGML模型放到本地的某一目录。 第二步: 执行python程序 git clone https://github.com/Rayrtfr/llama2-webui.gitcd llama2-web…...

项目经理必备-项目总体计划模板-制式文件,可直接填写使用-公司可用
合同中完整项目名称,黑体,28号字, 居中对齐,项目名称较长时换行填写 当前文档名称,黑体,小初, 居中对齐,文档名称较长时 换行填写 版 本 号 x.x 编制人 日期 20xx年xx月xx日…...
正则表达式系列|(以xx开头xx结尾提取、切分、替换)
正则表达式系列|(以xx开头xx结尾提取、切分、替换) 文章目录 正则表达式系列|(以xx开头xx结尾提取、切分、替换)[TOC] 前言一、以xx开头xx结尾进行数据处理?1.以xx开头xx结尾对文本拆分2.以xx开头xx结尾提取内容3.以xx…...

金融学复习博迪(第1-5章)
第一部分 金融和金融体系 第1章 金融学 金融:资金的流通,即储蓄,信贷、汇兑、股票和证券交易等经济活动的总称。 金融学:研究货币流通的学问。 传统的金融学研究领域大致有两个方向: >宏观层面的金融市场运行理论…...

【前端知识】React 基础巩固(三十七)——自定义connect高阶组件
React 基础巩固(三十七)——自定义connect高阶组件 一、手撸一个自定义connect高阶组件 import { PureComponent } from "react"; import store from "../store";/*** connect的参数:* 参数一: 函数* 参数二: 函数* 返…...
前端PDF导出,使用html2Canvas和jsPDF插件
import html2Canvas from "html2canvas"; import jsPDF from "jspdf"; export function downloadPDF(dom, filename) {const scale 2;window.pageYOffset 0;// 滚动到顶部,避免打印不全document.documentElement.scrollTop 0;document.body.…...

Android 设备兼容性使用详解
和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、设备兼容性分类二、硬件设备兼容三、软件 APP 兼容四、兼容不同语言五、兼容不同分辨率六、兼容不同屏幕方向布局七、兼容不同硬件 Feature八、兼容…...
vnc加固
0x00 认识VNC 先我们看看VNC运行的工作流程: VNC客户端通过浏览器或VNC Viewer连接至VNC Server; VNC Server传送一个对话窗口至客户端,要求输入连接密码(可能为空),以及存取的VNC Server显示装置&#…...

Windows下Nginx安装与配置教程
一、前言 1、Nginx是什么? Nginx是一个开源的Web服务器,同时Nginx也提供了反向代理和负载均衡的功能。 Nginx通常作为负载均衡器暴露在外网接受用户请求,同时也使用其反向代理的功能,将用户的请求转发到实际提供服务的内网服务器…...

Iterator迭代器和Generator生成器
Iterator迭代器和for/of循环原理 Iterator迭代器规范 自己创建一个Iterator类,来实现ES6中的迭代器规范: class Iterator {constructor(assemble) {// assemble:需要迭代的数据结构this.assemble = assemble// index:记录迭代的次数(或者索引)this.index = -1}// 必须具…...
Modbus-RTU协议C#实现
1、安装依赖包 System.IO.Ports 2、读协议 /// <summary>/// Modbus-RTU协议读实例/// </summary>private static void Read(){//组装一个请求报文// 01 03 00 00 00 0A C5 CDbyte slave 0x01;//byte function 0x03; //读单个寄存器byte function 0x01; //…...

Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)
星光下的赶路人star的个人主页 毅力是永久的享受 文章目录 1、NoSQL1.1 NoSQL数据库1.1.1 NoSQL是什么1.1.2 NoSQL的特点1.1.3 NoSQL的适用场景1.1.4 NoSQL的不适场景 1.2 NoSQL家族 2、Redis简介2.1 Redis官网2.2 Redis是什么2.3 Redis的应用场景2.3.1 配合关系型数据库做高速…...

基于组合双向拍卖的共享储能机制研究(Matlab代码实现)
目录 💥1 概述 📚2 运行结果 2.1 算例数据 2.2 买家中标 2.3 卖家中标 🎉3 文献来源 🌈4 Matlab代码实现 💥1 概述 文献来源: 摘要:为满足共享储能中储能用户的互补性和替代性需求、解决常规单…...

服务机器人有哪些品类
服务机器人是指具备自主运动、感知环境、实现人机交互等能力的机器人,它可以被应用于不同的场景,如餐饮、医疗、物流等行业。根据其功能和应用场景的不同,服务机器人可以分为以下几类:1. 餐饮服务机器人 随着社会发展和人们需…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...