4.Python数据分析—数据分析入门知识图谱索引(知识体系下篇)

4.Python数据分析—数据分析入门知识图谱&索引-知识体系下篇

  • 一·个人简介
  • 二·机器学习基础
    • 2.1 监督学习与无监督学习
      • 2.1.1 监督学习:
      • 2.1.2 无监督学习:
    • 2.2 特征工程
    • 2.3 常用机器学习算法概述
      • 2.3.1 监督学习算法:
      • 2.3.2 无监督学习算法:
      • 2.3.3 强化学习:
    • 2.4 模型评估与选择
  • 三·高级主题和工具
    • 3.1 大数据处理工具:
    • 3.2 分布式计算和云服务
      • 3.2.1 分布式计算
      • 3.2.2 云服务
    • 3.3 实时数据分析和流处理
      • 3.3.1 实时数据分析
      • 3.3.2 流处理
    • 3.4 机器学习库
  • 四·实际项目和练习
    • 4.1 波士顿房价预测——回归分析案例

一·个人简介

🏘️🏘️个人主页:以山河作礼。
🎖️🎖️:Python领域新星创作者,CSDN实力新星认证,CSDN内容合伙人,阿里云社区专家博主,新星计划导师,在职数据分析师。
🎉🎉免费学习专栏

1. 《Python基础入门》——0基础入门
2.《Python网络爬虫》——从入门到精通
3.《Web全栈开发》——涵盖了前端、后端和数据库等多个领域
4.《【30天】Python从入门到精通详解版》——30天入门到精通(持续更新中)
🎉🎉《机器学习算法专栏目前阶段免费(持续更新中)!!!
🪐🪐欢迎免费订阅!欢迎大家一起学习,一起成长!!
💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

二·机器学习基础

2.1 监督学习与无监督学习

在这里插入图片描述

2.1.1 监督学习:

监督学习的核心在于使用带有标签的训练数据来训练模型,以便模型能够学习输入到输出之间的映射关系。在这个过程中,算法会尝试找到一个最优的模型,使得对于新的输入数据,能够预测出正确的输出。

监督学习的应用场景非常广泛,包括但不限于邮件过滤图像识别疾病诊断等。在这些场景中,我们通常有一个明确的任务目标,比如将邮件分类为垃圾邮件或非垃圾邮件,或者识别图像中的物体类别。

2.1.2 无监督学习:

无监督学习不依赖于标注的数据,而是直接从数据中寻找模式或结构。在无监督学习中,算法试图揭示数据中的隐藏结构,如通过聚类算法对数据进行分组,或者通过降维技术减少数据的复杂性,同时保留其主要特征。

无监督学习适用于探索性数据分析市场细分、`社交网络分析等场景,这些场景中我们可能没有预先定义好的标签或结果。

监督学习和无监督学习的主要区别在于是否使用标注数据以及它们的学习目标
监督学习依赖于标注数据来预测或分类新的数据,而无监督学习则专注于发现数据中的固有结构和关系。

2.2 特征工程

  • 定义与目的:特征工程指的是从数据中提取、选择、转换和构造特征的过程,以便更好地代表问题的本质,从而提高模型的预测能力和泛化能力。
  • 重要性:特征工程对于模型性能至关重要,好的特征可以使模型训练更加高效,同时也能显著提高模型的准确性。
  • 流程与方法:特征工程包括多个步骤,如数据清洗、特征选择、特征构造和特征转换等。其中,特征选择是通过选取最有用的特征来减少数据的维度;特征构造则是创造新的特征,以捕捉数据中的某些模式或关系。
  • 工具与实践:在实际中,可以使用各种工具和技术来进行特征工程,如使用sklearn库中的preprocessing模块进行数据预处理和特征选择。还可以使用随机森林等算法来评估特征的重要性,并据此进行选择。
  • 类型与处理:特征工程涉及多种类型的数据,包括数值、分类值、日期、空间、图像和文本等。

2.3 常用机器学习算法概述

常用机器学习算法主要包括线性回归、支持向量机 (SVM)、最近邻居 (KNN)、逻辑回归、决策树、k平均、随机森林、朴素贝叶斯、降维和梯度增强等。

这些算法根据学习方式可以分为以下三类

2.3.1 监督学习算法:

在监督学习中,模型从带有标签的训练数据中学习,并预测未知数据的标签。常用的监督学习算法包括:

  • 线性回归:用于预测数值型输出,通过找到最佳拟合直线来描述自变量和因变量之间的关系。
  • 逻辑回归:虽然命名为回归,但它是用于分类问题的,特别是二分类问题。它通过逻辑函数将线性回归的输出映射到0到1之间,从而预测类别值。
  • 支持向量机(SVM):通过找到最优的超平面来区分不同的类别,尤其适用于边界清晰的复杂数据集。
  • 决策树:通过树状图模型进行决策,每个节点代表一个特征或属性,而每个分支代表这个特征的一个决策结果。
  • 随机森林:由多个决策树组成,通过集成学习提高预测准确性和控制过拟合。

2.3.2 无监督学习算法:

在无监督学习中,模型从未标记的数据中学习,通常用于发现数据中的模式或结构。常用的无监督学习算法包括:

  • K-均值聚类:一种划分方法,将数据分为K个簇,使得同一簇内的数据点尽可能相似。
  • 主成分分析(PCA):一种降维技术,通过保留数据中最重要的方差来减少数据集的维度。

2.3.3 强化学习:

强化学习与前两者不同,它关注如何基于环境反馈做出最佳决策。

2.4 模型评估与选择

  1. 评估方法:为了衡量学习器预测输出与样本真实输出之间的差异,我们需要选择合适的模型和参数。将数据集分为训练集和测试集,使用训练集来训练模型,然后使用测试集来评估模型的性能。
  2. 评估指标:模型的评估指标取决于问题是分类还是回归。对于分类问题,常用的指标包括准确率、召回率、F1分数、ROC曲线和AUC值。对于回归问题,常用的指标包括均方误差(MSE)、平均绝对误差(MAE)、Huber损失和均方根误差(RMSE)。
  3. 性能度量:通过计算上述指标,我们可以对模型的性能进行量化。例如,准确率告诉我们模型正确分类的比例,而ROC曲线则展示了模型在不同阈值下的表现。
  4. 泛化能力:泛化能力是指模型在新数据上的表现能力。使用交叉验证等技术,以确保模型不仅在测试集上表现良好,而且能够推广到未见过的数据上。
  5. 模型选择:在选择模型时,我们不仅要考虑模型的性能,还要考虑模型的复杂性、训练时间以及特征数量等因素。
  6. 实践应用:在实际应用中,我们通常会尝试多种模型和参数组合,然后根据评估结果来选择最佳的模型。这个过程可能需要多次迭代和调整,直到找到最适合问题的模型。

三·高级主题和工具

在这里插入图片描述

3.1 大数据处理工具:

大数据处理工具是一系列用于存储、处理和分析大量数据集的软件和技术。

  1. Hadoop:它是一个开源的数据存储和处理框架,能够分布式地处理大规模数据。Hadoop 的核心组件包括 HDFS(Hadoop Distributed File System)用于存储数据,以及 MapReduce 用于数据处理。

  2. MongoDB:这是一个领先的NoSQL数据库软件,它以文档形式存储数据,适合快速有效地进行大数据分析。

  3. Spark:它是一个强大的开源实时数据处理引擎,特别适合于需要快速迭代访问数据的应用场景。

  4. Cassandra:这是一个分布式NoSQL数据库系统,设计用来处理大量的数据跨许多商品服务器,提供高可用性和可扩展性。

  5. Excel:虽然通常被认为是一个电子表格软件,但 Microsoft Excel 也广泛用于数据分析,尤其是在需要进行简单的数据处理和可视化时。

  6. R:这是一种专门用于统计计算和图形的编程语言和软件环境,非常适合进行复杂的数据分析和建模。

  7. SPSS:它是统计分析软件,广泛应用于社会科学、健康科学、市场研究等领域的复杂统计分析。

  8. SAS:这是一个全面的软件套件,用于数据管理、高级分析、多变量分析、业务智能等领域。

  9. 腾讯大数据处理套件(TBDS):这是基于腾讯多年海量数据处理经验提供的大数据处理平台,提供多种大数据分析引擎和服务。

3.2 分布式计算和云服务

分布式计算和云服务都提供了强大的计算能力,但它们的关注点和应用方式有所不同

3.2.1 分布式计算

  • 分布式计算是一种计算方法,它将任务分散到多台计算机上执行,这些计算机在地理上可能相隔很远,但在用户看来它们像一个单一的系统一样工作。
  • 这种方法可以提高计算效率和可靠性,因为即使部分计算机出现故障,整个系统仍能继续运行。
  • 分布式计算通常用于需要大量计算资源的任务,如大型数据分析、科学研究等。

3.2.2 云服务

  • 云计算是分布式计算的一种商业实现,它通过互联网提供了计算资源和服务。
  • 云服务依赖于虚拟化技术,允许用户根据需求快速扩展或缩减资源。
  • 云服务模型包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS),为用户提供了灵活的选择以满足不同的业务需求。
  • 分布式云是云计算的一种形式,它将云服务的节点部署得更靠近用户,以降低延迟并提高性能。

3.3 实时数据分析和流处理

实时数据分析和流处理是现代数据处理中的两个关键概念,它们在延迟要求、应用场景和目的上有所不同

3.3.1 实时数据分析

  • 实时分析通常要求数据的处理延迟在微秒到毫秒级别。这意味着数据一旦产生,就必须立即被处理和分析,以便快速做出反应。
  • 实时处理常用于那些需要即时数据消费、决策和控制的系统,例如机器人系统、智能驾驶系统等。在这些系统中,实时性对于安全性和可靠性至关重要。
  • 实时处理系统的设计要求低延迟和高实时性,以确保决策和控制动作能够迅速反馈。

3.3.2 流处理

  • 流处理是指对持续产生的数据流进行处理的能力。它支持对数据进行连续的分析和决策,而不是等到所有数据都可用时再进行处理。
  • Flink是一个流行的流处理框架,它适用于多种场景,包括流分析、复杂事件处理、流与流的连接、机器学习、图分析、批处理和ETL等。
  • 流处理的目的是从不断变化的数据中获得洞察,并实时更新分析结果,以帮助业务做出更好的决策。

总的来说,实时数据分析侧重于极短时间内的数据处理和反应,而流处理则关注于对持续产生的数据流进行分析和处理。两者都是数据驱动决策的重要工具,但它们的设计目标和技术实现有所不同。

3.4 机器学习库

在机器学习领域,有多个流行的库可供使用,它们各自有不同的特点和优势。

  • scikit-learn:这是一个非常流行的机器学习库,提供了多种分类、回归、聚类、降维和预处理算法。它基于NumPy、SciPy和matplotlib,适用于数据挖掘和数据分析。
  • TensorFlow:由Google开发的一个开源库,主要用于深度学习和神经网络。它灵活且功能强大,支持多种深度学习模型的构建和训练。
  • Keras:一个高层神经网络API,它可以运行在TensorFlow、CNTK或Theano之上。Keras的设计旨在实现快速的实验,能够以TensorFlow作为后端时,具有高速和高效的特点。
  • Theano:一个优化的Python库,用于高效地定义、优化和计算数学表达式涉及多维数组。它适合进行深度学习和大数据集的计算。
  • PyTorch:一个由Facebook人工智能研究团队开发的库,用于自然语言处理等应用程序。它以其动态计算图和对Python的本地支持而受到欢迎。

四·实际项目和练习

4.1 波士顿房价预测——回归分析案例

回归分析是一种统计学方法,用于研究变量之间的关系,特别是一个或多个自变量(解释变量)对因变量(响应变量)的影响。
在这里插入图片描述
目前回归分析的研究范围可以分为如下几个部分组成

线性回归:一元线性回归、多元线性回归和多个因变量与多个自变量的回归。

回归诊断:通过数据推断回归模型基本假设的合理性、基本假设不成立时对数据的修正、回归方程拟合效果的判断以及回归函数形式的选择。

回归变量的选择:根据什么标准选择自变量和逐步回归分析方法。

参数估计方法:偏最小二乘回归、主成分回归和岭回归。

非线性回归:一元非线性回归、分段回归和多元非线性回归。

定性变量的回归:因变量含有定性变量和自变量含有定性变量。

波士顿房价数据说明:此数据源于美国某经济学杂志上,分析研究波士顿房价( Boston HousePrice)的数据集。数据集中的每一行数据都是对波士顿周边或城镇房价的情况描述,下面对数据集变量说明下,方便大家理解数据集变量代表的意义。

CRIM: 城镇人均犯罪率
ZN: 住宅用地所占比例
INDUS: 城镇中非住宅用地所占比例
CHAS: 虚拟变量,用于回归分析
NOX: 环保指数
RM: 每栋住宅的房间数
AGE: 1940 年以前建成的自住单位的比例
DIS: 距离 5 个波士顿的就业中心的加权距离
RAD: 距离高速公路的便利指数
TAX: 每一万美元的不动产税率
PTRATIO: 城镇中的教师学生比例
B: 城镇中的黑人比例
LSTAT: 地区中有多少房东属于低收入人群
MEDV: 自住房屋房价中位数(也就是均价)

首先对数据分析,处理特殊异常值,然后才是模型和评估,并应用模型进行预测。

1.首先导入数据集,对数据进行分析

#导入Python常用数据分析的库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()    #设置画图空间为 Seaborn 默认风格

names=['CRIM','ZN','INDUS','CHAS','NOX','RM','GE','DIS','RAD','TAX','PRTATIO','B','LSTAT','PRICE']

boston=pd.read_csv("/Users/glenji/Desktop/housing.csv",names=names,delim_whitespace=True)
boston.head(10)

在这里插入图片描述
查看各字段基础信息:

boston.info()

在这里插入图片描述
查看缺失值:

#查看缺失值

boston.isnull().sum()

在这里插入图片描述
二、描述性数据分析
①查看描述性数据统计:可以看到各个字段的均值、中位数、标准差等。

描述性数据统计

boston.describe()

在这里插入图片描述
查看各字段的相关性:可以看到房子价格跟住宅的房间数成比较强的正相关,而跟低收入人数比例有比较强的负相关。

#查看相关性

corrboston = boston.corr()
corrboston

plt.figure(figsize=(10,10))    #设置画布
sns.heatmap(corrboston,annot=True,cmap='RdGy')
plt.show()

在这里插入图片描述
查看是否穿过查尔斯河对房价的影响:可以看到被河流穿过的豪宅仅占比6.92%,而被查尔斯河穿过的豪宅,比没有被穿过的豪宅平均贵了28.7%。

#查看是否穿过查尔斯河的两类占比
#可以看到被河流穿过的豪宅仅占比6.92%

fig,ax = plt.subplots(1,2,figsize=(10,5))

boston['CHAS'].value_counts().plot.pie(ax=ax[0],shadow=False,autopct='%1.2f%%')
ax[0].set_ylabel('')    #设置y轴标签
ax[0].set_xlabel('CHAS')    #设置x轴标签

sns.countplot('CHAS',data=boston,ax=ax[1])
ax[1].set_ylabel('')
ax[1].set_xlabel('CHAS')
plt.show()

在这里插入图片描述

#再来看看两种不同类型的房子的价值如何
#可以看到被查尔斯河穿过的豪宅,比没有被穿过的豪宅平均贵了28.7%

bostonCHAS = boston[['CHAS','PRICE']]    #先将CHAS和PRICE两列数据取出

bostonCHAS1=bostonCHAS.pivot_table(values='PRICE',    #计算的值
                               index='CHAS',       #透视的行,分组的依据
                               aggfunc='mean')            #聚合函数

# 对透视表进行降序排列
bostonCHAS1 = bostonCHAS1.sort_values(by='PRICE',     # 排序依据
                        ascending=False                 # 是否升序排列
                       )

bostonCHAS1

在这里插入图片描述
④看看各个字段与价格的散点图:以初步了解价格与相应字段的关系。可以看到不是所有的字段与价格都有较强的相关关系,但本例中不涉及多元线性回归的向后删除,仅做最简单的多元性性回归的分析处理。

x_data = boston[['CRIM','ZN','INDUS','CHAS','NOX','RM','GE','DIS','RAD','TAX','PRTATIO','B','LSTAT']] # 导入所有特征变量
y_data = boston[['PRICE']] # 导入目标值(房价)

plt.figure(figsize=(18,10))

for i in range(13):
    plt.subplot(4,4,i+1)
    plt.scatter(x_data.values[:,i],y_data,s = 5)    #.values将DataFrame对象X_df转成ndarray数组
    plt.xlabel(names[i])
    plt.ylabel('Price')
    plt.title(str(i+1)+'. '+names[i]+' - Price')  
    
plt.tight_layout()
plt.show()

在这里插入图片描述
三、预测性数据分析
①选取线性回归字段:

from sklearn import linear_model

#定义线性回归的x和y变量
x=pd.DataFrame(boston[['CRIM','ZN','INDUS','CHAS','NOX','RM','GE','DIS','RAD','TAX','PRTATIO','B','LSTAT']])
y=boston['PRICE']

x

在这里插入图片描述
②建立线性回归模型,并调用:可以看到各个字段的回归系数,可以写出一个回归方程:y=ax1+bx2+……,理论上你知道一套新房子的各个字段,带入公式即可预测出价格。

#建立线性回归模型,并将变量带入模型进行训练。
clf = linear_model.LinearRegression()
clf.fit(x, y)

#查看回归系数。本例为一元回归,所以只有一个系数。
print('回归系数:', clf.coef_)

在这里插入图片描述
③计算回归系数:计算出的回归系数为0.74,回归拟合效果较好。

from sklearn.metrics import r2_score
score = r2_score(y, y_pred)
score

在这里插入图片描述

④可以进行简单的预测:

y_pred =clf.predict(x)
print(y_pred)

在这里插入图片描述

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

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

相关文章

拿下阿里面试:揭秘JVM对象引用的奥秘!

如有疑问或者更多的技术分享,欢迎关注我的微信公众号“知其然亦知其所以然”! 大家好,我是小米!今天我要和大家一起探讨的是JVM中的对象引用,这也是阿里巴巴面试中经常被问到的热门话题哦!在Java开发中,我们经常需要管理对象的引用,了解不同类型的引用对于优化内存、避…

【一】TensorFlow神经网络模型构建之神经元函数及优化方法

TensorFlow神经网络模型构建主要涉及如下几块:神经元函数、卷积函数、池化函数、分类函数、优化方法。下面分别对这几块进行展开说明: 神经元函数及优化方法 神经网络之所以能解决非线性问题(如语音、图像识别等),本…

web学习笔记(四十七)

目录 1. node.js中的三个全局变量 1.1 global 1.2 __dirname 文件夹的绝对路径 1.3 __filename 文件名的绝对路径 2.模块化 2.1 什么是模块化 2.2 模块化的好处 3. Node.js 中模块化 3.1 Node.js 中的模块化规范 4. Node.js 中的模块作用域 4.1module 对象 4.2 mod…

自定义你的商店 – 设计WooCommerce商店的新方法

WooCommerce 8.8即将推出,带来了一种无需代码即可创建精美商店的新方法。向“自定义你的商店”问好,这是一项全新功能,将取代“个性化你的商店”入门步骤。 自定义你的商店将利用最新的WordPress站点编辑工具以及酷炫的新Pattern Assembler …

深兰科技陈海波:生成式AI,新一轮知识生产力革命

3月26日,AIoT创新技术赋能工业数字化高峰论坛在上海市宝山区临港南大数智中心隆重举行。活动吸引了诸多行业内的专家学者、企业家及金融投资机构、政府园区、用户等多位业界精英出席,共同探讨该领域面临的挑战与机遇,分享最新的科研成果和技术…

【信号处理】基于DGGAN的单通道脑电信号增强和情绪检测(tensorflow)

关于 情绪检测,是脑科学研究中的一个常见和热门的方向。在进行情绪检测的分类中,真实数据不足,经常导致情绪检测模型的性能不佳。因此,对数据进行增强,成为了一个提升下游任务的重要的手段。本项目通过DCGAN模型实现脑…

【动手学深度学习】深入浅出深度学习之线性神经网络

目录 🌞一、实验目的 🌞二、实验准备 🌞三、实验内容 🌼1. 线性回归 🌻1.1 矢量化加速 🌻1.2 正态分布与平方损失 🌼2. 线性回归的从零开始实现 🌻2.1. 生成数据集 &#x…

泛微表单添加自定义按钮

页面效果&#xff1a; 点击按钮&#xff0c;将参数字段对应的值传入链接中。 表单配置如下&#xff1a; 然后插入js代码块&#xff0c;代码如下&#xff1a; <script> jQuery(document).ready(function(){ //在表单的按钮单元格插入自定义属性&#xff1a;ID&#xff1…

三级等保建设技术方案-Word

1信息系统详细设计方案 1.1安全建设需求分析 1.1.1网络结构安全 1.1.2边界安全风险与需求分析 1.1.3运维风险需求分析 1.1.4关键服务器管理风险分析 1.1.5关键服务器用户操作管理风险分析 1.1.6数据库敏感数据运维风险分析 1.1.7“人机”运维操作行为风险综合分析 1.2…

云能耗管理系统在某高校建筑系统平台的开发与应用

摘要&#xff1a;依据本项目依托某学院的电能计量管理系统、给水计量监管系统以及供热计量管理系统等基础平台&#xff0c;制订了高等学校建筑能耗综合管理系统平台应用的总体框架和方案&#xff0c;该系统可以对校园建筑的各种用能情况进行实时监测、统计能耗、进行能效分析&a…

DVWA-CSRF通关教程-完结

DVWA-CSRF通关教程-完结 文章目录 DVWA-CSRF通关教程-完结Low页面使用源码分析漏洞利用 Medium源码分析漏洞利用 High源码分析漏洞利用 impossible源码分析 Low 页面使用 当前页面上&#xff0c;是一个修改admin密码的页面&#xff0c;只需要输入新密码和重复新密码&#xff…

全局UI方法-弹窗三-文本滑动选择器弹窗(TextPickDialog)

1、描述 根据指定的选择范围创建文本选择器&#xff0c;展示在弹窗上。 2、接口 TextPickDialog(options?: TextPickDialogOptions) 3、TextPickDialogOptions 参数名称 参数类型 必填 参数描述 rang string[] | Resource 是 设置文本选择器的选择范围。 selected nu…

聚酰亚胺PI材料难于粘接,用什么胶水粘接?那么让我们先一步步的从认识它开始(十一): 聚酰亚胺PI纤维

聚酰亚胺PI纤维 聚酰亚胺PI纤维是由聚酰亚胺制成的纤维材料&#xff0c;是一种非常高性能的工程纤维材料。它具有极强的耐温性、耐化学性、耐热性和耐磨性等特点。具体来说&#xff0c;聚酰亚胺PI纤维的耐温性能非常突出&#xff0c;可以承受高达300℃以上的高温条件而不流失或…

热爱负压自动排渣放水器向光而行

你还很年轻&#xff0c;将来你会遇到很多人&#xff0c; 经历很多事&#xff0c;得到很多&#xff0c;也会失去很多&#xff0c; 但无论如何有两样东西&#xff0c;你绝不能丢弃&#xff0c; 一个叫良心&#xff0c;另一个叫理想。 热爱负压自动排渣放水器向光而行 一、概述 【…

目标检测+车道线识别+追踪

一种方法&#xff1a; 车道线检测-canny边缘检测-霍夫变换 一、什么是霍夫变换 霍夫变换&#xff08;Hough Transform&#xff09;是一种在图像处理和计算机视觉中广泛使用的特征检测技术&#xff0c;主要用于识别图像中的几何形状&#xff0c;尤其是直线、圆和椭圆等常见形状…

[密码学] 密码学基础

目录 一 为什么要加密? 二 常见的密码算法 三 密钥 四 密码学常识 五 密码信息威胁 六 凯撒密码 一 为什么要加密? 在互联网的通信中&#xff0c;数据是通过很多计算机或者通信设备相互转发&#xff0c;才能够到达目的地,所以在这个转发的过程中&#xff0c;如果通信包…

MySql实战--普通索引和唯一索引,应该怎么选择

在前面的基础篇文章中&#xff0c;我给你介绍过索引的基本概念&#xff0c;相信你已经了解了唯一索引和普通索引的区别。今天我们就继续来谈谈&#xff0c;在不同的业务场景下&#xff0c;应该选择普通索引&#xff0c;还是唯一索引&#xff1f; 假设你在维护一个市民系统&…

C++堆详细讲解

介绍 二叉堆是一种基础数据结构&#xff0c;主要应用于求出一组数据中的最大最小值。C 的STL中的优先队列就是使用二叉堆。 堆的性质 : 1 . 堆是一颗完全二叉树 ; 2 . 堆分为大根堆 和 小根堆(这里不讨论那些更高级的如:二叉堆&#xff0c;二叉堆&#xff0c;左偏树等等) …

《手把手教你》系列技巧篇(五十八)-java+ selenium自动化测试-分页测试(详细教程)

1.简介 前几天&#xff0c;有人私信里留言问宏哥&#xff0c;分页怎么自动化测试了&#xff0c;完了给他说了说思路&#xff0c;不知道最后搞定没有&#xff0c;索性宏哥就写一篇文章来讲解和介绍如何处理分页。 2.测试场景 对分页来说&#xff0c;我们最感兴趣的和测试的无非…

主流公链 - Monero

Monero: 加密货币的隐私标杆 1. 简介 Monero&#xff08;XMR&#xff09;&#xff0c;世界语中货币的意思&#xff0c;是一种去中心化的加密货币&#xff0c;旨在提供隐私和匿名性。与比特币等公开区块链不同&#xff0c;Monero专注于隐私保护&#xff0c;使用户的交易记录和余…