【机器学习-12】数据探索---python主要的探索函数

在上一篇博客【机器学习】数据探索(Data Exploration)—数据质量和数据特征分析中,我们深入探讨了数据预处理的重要性,并介绍了诸如插值、数据归一化和主成分分析等关键技术。这些方法有助于我们清理数据中的噪声、消除异常值,以及降低数据的维度,从而为后续的机器学习模型训练提供更有价值的信息。

然而,数据预处理只是数据探索的一部分。在本篇博客中,我们将进一步探讨Python中一些主要的探索函数,这些函数将帮助我们更深入地理解数据的分布、特征之间的关系,以及数据中可能存在的模式。而在Python的数据探索领域,Pandas和Matplotlib是两个不可或缺的库。Pandas以其强大的数据处理和分析能力著称,而Matplotlib则以其出色的数据可视化功能闻名。Pandas中的函数可以大致分为两类:统计特征函数和统计作图函数。这些作图函数常常与Matplotlib紧密结合,共同呈现数据的内在规律和特点。下面,我们将详细介绍Pandas中的一些主要统计特征函数与统计作图函数,并通过实例来加深理解。这些函数不仅能够帮助我们深入了解数据的分布情况,还能揭示数据之间的潜在关系,为数据分析和机器学习模型的构建提供有力的支持。

一、 基本统计特征函数

统计特征函数用于计算数据的均值、方差、标准差、分位数、相关系数和协方差等,这些统计特征能反映出数据的整体分布。本小节所介绍的统计特征函数如表3-8所示,它们主要作为Pandas的对象DataFrame或 Series的方法出现。

P a n d a s 主要统计特征函数 \bold{Pandas主要统计特征函数} Pandas主要统计特征函数

方法名函数功能所属库
sum()计算数据样本的总和(按列计算)Pandas
mean()计算数据样本的算术平均数Pandas
var()计算数据样本的方差Pandas
std()计算数据样本的标准差Pandas
corr()计算数据样本的Spearman (Pearson)相关系数矩阵Pandas
cov()计算数据样本的协方差矩阵Pandas
skew()样本值的偏度(三阶矩)Pandas
kurt()样本值的峰度(四阶矩)Pandas
describe()给出样本的基本描述(基本统计量如均值、标准差等)Pandas

以下是Pandas库中一些主要统计特征函数的详细介绍,包括它们的功能、使用格式以及示例。

1.1 sum()

功能:计算Series或DataFrame中所有元素的和。
使用格式:

Series.sum()  
DataFrame.sum(axis=0, skipna=None, level=None, numeric_only=None, **kwargs)
  • axis: 默认为0,表示按列求和;如果为1,则按行求和。
  • skipna: 排除缺失值(NaN)进行计算,默认为True。
  • numeric_only: 仅对数值列进行操作,默认为False。
    示例:
import pandas as pd  
  
# 创建一个简单的DataFrame  
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})  
  
# 计算所有元素的和  
sum_all = df.sum()  
print(sum_all)  # 输出:A    6, B    15, dtype: int64  
  
# 按行求和  
sum_rows = df.sum(axis=1)  
print(sum_rows)  # 输出:0    5, 1    7, 2    9, dtype: int64
1.2 mean()

**功能:**计算Series或DataFrame中所有元素的平均值。

使用格式:

Series.mean(skipna=None, level=None, numeric_only=None, **kwargs)  
DataFrame.mean(axis=0, skipna=None, level=None, numeric_only=None, **kwargs)
  • axis: 默认为0,表示按列求平均值;如果为1,则按行求平均值。
  • skipna: 排除缺失值(NaN)进行计算,默认为True。
  • numeric_only: 仅对数值列进行操作,默认为False。
    示例:
# 使用前面的DataFrame  
mean_col = df.mean()  
print(mean_col)  # 输出:A    2.0, B    5.0, dtype: float64  
  
mean_row = df.mean(axis=1)  
print(mean_row)  # 输出:0    2.5, 1    3.5, 2    4.5, dtype: float64
1.3 var()

**功能:**计算Series或DataFrame中所有元素的方差。

使用格式:

Series.var(skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)  
DataFrame.var(axis=0, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)
  • axis: 默认为0,表示按列求方差;如果为1,则按行求方差。
  • skipna: 排除缺失值(NaN)进行计算,默认为True。
  • ddof: 自由度调整值,默认为1。
  • numeric_only: 仅对数值列进行操作,默认为False。
    示例:
var_col = df.var()  
print(var_col)  # 输出方差计算结果
1.4 std()

**功能:**计算Series或DataFrame中所有元素的标准差。

使用格式:

Series.std(skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)  
DataFrame.std(axis=0, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)

参数与var()函数相似。

示例:

std_col = df.std()  
print(std_col)  # 输出标准差计算结果
1.5 corr()

**功能:**计算DataFrame中不同列之间的相关系数矩阵。

使用格式:

DataFrame.corr(method='pearson', min_periods=1)
  • method: 计算相关系数的方法,默认为’pearson’皮尔逊相关系数,还可是’kendall’或’spearman’。
  • min_periods: 一对列至少需要多少个非NA观测值才能计算相关系数。

示例:

corr_matrix = df.corr()  
print(corr_matrix)  # 输出相关系数矩阵
1.6 cov()

**功能:**计算DataFrame中不同列之间的协方差矩阵。

使用格式:

DataFrame.cov(min_periods=None)
  • min_periods: 一对列至少需要多少个非NA观测值才能计算协方差。

示例:

cov_matrix = df.cov()  
print(cov_matrix)  # 输出协方差矩阵
1.7 skew()

**功能:**计算Series或DataFrame中所有数值列的偏度。偏度衡量数据分布的不对称性。

使用格式:

Series.skew(skipna=True, level=None, numeric_only=None, **kwargs)  
DataFrame.skew(axis=0, skipna=None, level=None, numeric_only=None, **kwargs)
  • axis: 默认为0,表示按列计算偏度;如果为1,则按行计算偏度。
  • skipna: 排除缺失值(NaN)进行计算,默认为True。
  • numeric_only: 仅对数值列进行操作,默认为False。

示例:

skewness = df.skew()  
print(skewness)  # 输出偏度计算结果
1.8 kurt()

**功能:**计算Series或DataFrame中所有数值列的峰度。峰度衡量数据分布形态的陡峭程度。

使用格式:

Series.kurt(skipna=True, level=None, numeric_only=None, **kwargs)  
DataFrame.kurt(axis=0, skipna=None, level=None, numeric_only=None, **kwargs)

参数与skew()函数相似。

示例:

kurtosis = df.kurt()  
print(kurtosis)  # 输出峰度计算结果
1.9 describe()

**功能:**生成描述性统计信息,包括计数、均值、标准差、最小值、四分位数(25%、50%、75%)以及最大值。

使用格式:

DataFrame.describe(percentiles=[], include=[], exclude=None)
  • percentiles: 要包含在输出中的百分位数。
  • include: 要包含的列的数据类型。
  • exclude: 要排除的列的数据类型。

示例:

desc_stats = df.describe()  
print(desc_stats)  # 输出描述性统计信息

以上就是对Pandas库中一些主要统计特征函数的详细介绍和示例。这些函数在处理数据时非常有用,能够帮助我们快速了解数据的分布情况,为后续的数据分析和建模提供有力的支持。在使用这些函数时,可以根据具体的数据和需求选择合适的参数和选项。

二、拓展统计特征函数

除了上述基本的统计特征外,Pandas还提供了一些非常方便实用的计算统计特征的函数,主要有累积计算(cum)和滚动计算(pd.rolling_)。
P a n d a s 累积统计特征函数 \bold{Pandas累积统计特征函数} Pandas累积统计特征函数

方法名函数功能所属库
cumsum()依次给出前1、2、…、n个数的和)Pandas
cumprod()依次给出前1、2、…、n个数的积Pandas
cummax()依次给出前1、2、…、n个数的maxPandas
cummin()依次给出前1、2、…、n个数的minPandas
rolling_sum()计算数据样本的总和(按列计算)Pandas
rolling_mean()计算数据样本的算术平均数Pandas
rolling_var()计算数据样本的方差Pandas
rolling_std()计算数据样本的标准差Pandas
rolling_corr()计算数据样本的Spearman (Pearson)相关系数矩阵Pandas
rolling_cov()计算数据样本的协方差矩阵Pandas
rolling_skew()样本值的偏度(三阶矩)Pandas
rolling_kurt()样本值的峰度(四阶矩)Pandas

其中,cum系列函数是作为DataFrame或’Series对象的方法而出现的,因此命令格D.cumsum(),而rolling_系列是pandas 的函数,不是DataFrame或Series对象的方法,因此,其中,cum系列函数是作为DataFrame或’Series对象的方法而出现的,因此命令格式为D.cumsum(),而rolling_系列是pandas 的函数,不是DataFrame或Series对象的方法

三、统计作图函数

通过统计作图函数绘制的图表可以直观地反映出数据及统计量的性质及其内在规律,如盒图可以表示多个样本的均值,误差条形图能同时显示下限误差和上限误差,最小二乘拟合曲线图能分析两变量间的关系。

Python的主要作图库是Matplotlib,在第2章中已经进行了初步的介绍,而 Pandas基于Matplotlib并对某些命令进行了简化,因此作图通常是Matplotlib和 Pandas相互结合着使用。本小节仅对一些基本的作图函数做一下简介,而真正灵活地使用应当参考书中所给出的各个作图代码清单。我们要介绍的统计作图函数如表所示。

P y t h o n 主要统计作图函数 \bold{Python主要统计作图函数} Python主要统计作图函数

方法名函数功能所属库
plot()绘制线性二维图,折线图Pandas/Matplotlib
pie()绘制饼状图Pandas/Matplotlib
hist()绘制二维条形直方图,可显示数据的分配情形Pandas/Matplotlib
boxplot()绘制样本数据的箱形图Pandas
plot(logy=True)绘制y轴的对数图形Pandas
plot(yerr=True)绘制误差条形图Pandas

在作图之前,通常要加载以下代码。

import matplotlib.pyplot as plt#导入作图库
plt.rcParams [ 'font.sans-serif'] =[ 'SimHei']#用来正常显示中文标签
plt.rcParams [ 'axes.unicode_minus' ] = False #用来正常显示负号
plt.figure(figsize = (7,5))#创建图像区域,指定比例

作图完成后,一般通过plt.show()来显示作图结果。

3.1 plot()

**功能:**绘制线性二维图、折线图。
使用格式:
p l t . p l o t ( x , y , S ) plt.plot(x,y, S) plt.plot(x,y,S)

这是Matplotlib通用的绘图方式,绘制y对于x (即以x为横轴的二维图形),字符串参量S指定绘制时图形的类型、样式和颜色,常用的选项有: 'b’为蓝色、'r’为红色、'g’为绿色、‘o’为圆圈、’+‘为加号标记、’-‘为实线、’–'为虚线。当x、y均为实数同维向量时,则描出点(x(i),y(i)),然后用直线依次相连。
D . p l o t ( k i n d = ′ b o x ′ ) D.plot(kind = 'box') D.plot(kind=box)
这里使用的是 DataFrame x J会数指定作图类型,支持line(线).bar(余形)、barto tL由接数据为纵坐标自动作图,通过kind参数指定作图类型,支持line(线), bar(条形),barh , hist(直方图)、box(箱线图)、kde(密度图)和 area、pie(饼图)等,同时也能够接受plt.plot() 受的参数。因此,如果数据已经被加载为Pandas中的对象,那么以这种方式作图是比较简洁的。
**实例:**在区间(0≤x≤2T)绘制一条蓝色的正弦虚线,并在每个坐标点标上五角星。绘制图形如图所示。

import numpy as np
x = np.linspace (0 , 2*np.pi,50)#x坐标输入
y = np.sin (x)#计算对应x的正弦值
plt.plot(x,y, 'bp--'#控制图形格式为蓝色带星虚线,显示正弦曲线
plt.show ( )

在这里插入图片描述

3.2 pie()

**功能:**绘制饼型图。
使用格式:
p l t . p i e ( s i z e ) plt.pie(size) plt.pie(size)
使用Matplotlib绘制饼图,其中size是一个列表,记录各个扇形的比例。pie有丰富的参数,详情请参考下面的实例。

import matplotlib.pyplot as plt
# The slices will be ordered and plotted counter-clockwise.
labels = 'Frogs ', 'Hogs ', 'Dogs ', 'Logs’#定义标签
sizes =[ 15,30,45,10]#每一块的比例
colors = [ ' yellowgreen', 'gold', 'lightskyblue ''lightcoral']#每一块的颜色
explode = (00.100) #突出显示,这里仅仅突出显示第二块(即'Hogs ' )
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,    startangle=90)
plt.axis ( 'equal')#显示为圆(避免比例压缩为椭圆)
plt.show ( )

在这里插入图片描述

3.3 hist()

**功能:**绘制二维条形直方图,可显示数据的分布情形。
使用格式:

Plt.hist(x, y)
其中,x是待绘制直方图的一维数组,y可以是整数,表示均匀分为n组;也可以是列表,列表各个数字为分组的边界点(即手动指定分界点)。
import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(1000)
plt.hist(x,10)
plt.show()

在这里插入图片描述

3.4 boxplot()

**功能:**绘制样本数据的箱形图。
使用格式:

D.boxplot() / D.plot(kind = 'box')
有两种比较简单的方式绘制D的箱形图,其中一种是直接调用DataFrame的 boxplot()方法;另外一种是调用Series或者DataFrame的 plot()方法,并用kind参数指定箱形( box)。其中,盒子的上、下四分位数和中值处有一条线段。箱形末端延伸出去的直线称为表示盒外数据的长度。如果在须外没有数据,则在须的底部有一点,点的颜色与须的颜色相同。 **实例:**绘制样本数据的箱形图,样本由两组正态分布的随机数据组成。其中,一组数据均值为0,标准差为1,另一组数据均值为1,标准差为1。绘制结果如图所示。
D = pd.DataFrame([x,x+1]).T
D.plot(kind='box')
plt.show()

在这里插入图片描述

3.5 plot(logx=True)

plot(logx=True)和plot(yerr=error)在数据探索的过程中使用的并不多,这里不做过多的介绍,后续有时间将进行修订。

四、案例研究

在这个案例研究中,我们将使用著名的“泰坦尼克号”数据集,该数据集记录了泰坦尼克号沉船事故中乘客的详细信息,包括他们的生存状况、年龄、性别、舱位等级等。我们的目标是通过数据探索,分析数据质量并提取关键特征,为后续的机器学习模型构建提供有力支持。

数据集介绍:
数据集包含以下字段:PassengerId(乘客ID)、Survived(是否生存)、Pclass(舱位等级)、Name(姓名)、Sex(性别)、Age(年龄)、SibSp(兄弟姐妹/配偶数)、Parch(父母/子女数)、Ticket(船票号)、Fare(票价)、Cabin(船舱号)、Embarked(登船港口)。

数据加载与初步查看:
首先,我们使用Pandas库加载数据并查看前几行以了解数据的大致结构。

import pandas as pd  
  
# 加载数据  
titanic_data = pd.read_csv('titanic.csv')  
  
# 查看数据前5行  
print(titanic_data.head())

数据质量分析:

接下来,我们进行数据质量分析,重点关注缺失值。

# 检查缺失值  
missing_values = titanic_data.isnull().sum()  
print(missing_values)  
  
# 可视化缺失值  
import matplotlib.pyplot as plt  
plt.figure(figsize=(10, 6))  
missing_values.plot(kind='bar')  
plt.title('Missing Values in Titanic Dataset')  
plt.xlabel('Features')  
plt.ylabel('Number of Missing Values')  
plt.show()

通过查看缺失值的数量和分布情况,我们发现Age、Cabin和Embarked字段存在缺失值。对于Age,我们可以考虑使用均值、中位数或基于其他特征(如性别和舱位等级)的插值来填充。对于Cabin,由于缺失值太多且可能不包含对预测Survived有用的信息,我们可以考虑删除这个特征。对于Embarked,由于缺失值较少,我们可以考虑使用众数填充。

数据特征分析:

在进行特征分析时,我们关注特征的统计描述、分布以及它们与目标变量Survived的关系。

# 描述性统计  
titanic_data.describe()  
  
# 查看分类特征的分布  
print(titanic_data['Sex'].value_counts())  
print(titanic_data['Pclass'].value_counts())  
print(titanic_data['Embarked'].value_counts(dropna=False))  
  
# 可视化特征与生存的关系  
titanic_data['Survived'].value_counts().plot(kind='bar', label='Survival')  
plt.title('Survival Counts')  
plt.xlabel('Survived')  
plt.ylabel('Count')  
plt.legend()  
plt.show()  
  
# 以性别为例,查看生存率的差异  
gender_survival = titanic_data.groupby('Sex')['Survived'].mean()  
gender_survival.plot(kind='bar')  
plt.title('Survival Rate by Gender')  
plt.xlabel('Gender')  
plt.ylabel('Survival Rate')  
plt.show()

通过这些分析,我们可以发现性别和舱位等级与生存率有显著的关系。例如,女性乘客的生存率高于男性,高等级舱位的乘客生存率也较高。这些信息对于后续的模型构建和特征选择非常有价值。

数据清洗与特征工程:

基于上述分析,我们进行数据清洗和特征工程。

# 填充Age缺失值,使用中位数填充  
titanic_data['Age'].fillna(titanic_data['Age'].median(), inplace=True)  
  
# 填充Embarked缺失值,使用众数填充  
titanic_data['Embarked'].fillna(titanic_data['Embarked'].mode()[0], inplace=True)  
  
# 删除Cabin特征,因为缺失值太多且可能不相关  
titanic_data.drop('Cabin', axis=1, inplace=True)  
  
# 将分类特征进行编码,例如将Sex编码为数值  
titanic_data['Sex'] = titanic_data['Sex'].map({'female': 0, 'male': 1})  
titanic_data['Embarked'] = titanic_data['Embarked'].map({'S': 0, 'C': 1, 'Q': 2})

特征选择:

在进行了初步的数据清洗和特征工程后,我们可以进一步进行特征选择,以确定哪些特征对预测Survived最为关键。在这个案例中,我们可以通过计算特征与目标变量之间的相关性来进行特征选择。

# 计算特征与生存之间的相关性  
correlations = titanic_data.corrwith(titanic_data['Survived'])  
  
# 显示相关性  
print(correlations)  
  
# 基于相关性选择特征  
selected_features = correlations[abs(correlations) > 0.1].index  
titanic_data_selected = titanic_data[selected_features]  
  
print(titanic_data_selected.head())

在这个例子中,我们选择了与Survived相关性绝对值大于0.1的特征。这样,我们可以去除那些与目标变量关系不大的特征,减少模型的复杂度,并提高模型的性能。

数据准备与模型训练:

最后,我们将经过清洗、编码和选择后的数据分为训练集和测试集,准备用于机器学习模型的训练。

from sklearn.model_selection import train_test_split  
  
# 分离特征和标签  
X = titanic_data_selected.drop('Survived', axis=1)  
y = titanic_data_selected['Survived']  
  
# 划分训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)  
  
# 后续可以使用X_train和y_train来训练机器学习模型,并使用X_test和y_test来评估模型的性能。

通过本案例研究,我们展示了如何进行数据质量和数据特征分析。首先,我们加载了数据集并检查了缺失值的情况,对缺失值进行了合理的填充或删除。接着,我们对特征进行了描述性统计和可视化分析,了解了特征的分布以及与目标变量的关系。然后,我们进行了特征选择,去除了与目标变量相关性不强的特征。最后,我们准备了数据用于机器学习模型的训练。这个过程是机器学习项目中的重要一环,能够帮助我们更好地理解数据,并为后续的模型构建提供坚实的基础。

小结

本章从应用的角度出发,从数据质量分析和数据特征分析两个方面对数据进行探索分析,最后介绍了Python常用的数据探索函数及用例。数据质量分析要求我们拿到数据后先检测是否存在缺失值和异常值;数据特征分析要求我们在数据挖掘建模前,通过频率分布分析、对比分析、帕累托分析、周期性分析、相关性分析等方法,对采集的样本数据的特征规律进行分析,以了解数据的规律和趋势,为数据挖掘的后续环节提供支持。

要特别说明的是,在数据可视化中,由于主要使用Pandas作为数据探索和分析的工具,因此我们介绍的作图工具都是Matplotlib和Pandas结合使用。一方面,Matplotlib是作图工具的基础,Pandas作图依赖于它;另一方面,Pandas 作图有着简单直接的优势,因此.相互结合,往往能够以最高的效率作出符合我们需要的图。

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

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

相关文章

AI视频教程下载:用ChatGPT和 MERN 堆栈构建 SAAS 项目

这是一个关于 掌握ChatGPT 开发应用的全面课程,它将带领你进入 AI 驱动的 SAAS 项目的沉浸式世界。该课程旨在使你具备使用动态的 MERN 堆栈和无缝的 Stripe 集成来构建强大的 SAAS 平台所需的技能。 你将探索打造智能解决方案的艺术,深入研究 ChatGPT 的…

PM2管理器无法使用解决方法

之前的项目全是依靠PM2管理器部署的,部署快速,也便于管理 但是宝塔实在是bug毛病太多,最近这两天又出毛病了 这次的问题是在PM2管理器的node版本中无法进行版本切换,如果是第一次使用PM2的话甚至无法设置node版本,之前…

docker 集群管理实战mesos+zookeeper+marathon(一)

一 实验环境 1.1 系统版本,本实验使用cnetos7.9版本镜像 1.2 准备5台虚拟机,其中3台master,两台slave,使用克隆的方式 1.3 使用远程连接工具登录 1.4 修改主机名 1.5 设置域名映射 每个虚拟机都配置一下,这里就演示一…

区块链基础——区块链应用架构概览

目录 区块链应用架构概览: 1、区块链技术回顾 1.1、以太坊结点结构 1.2、多种应用场景 2、区块链应用架构概览 2.1、传统的Web2 应用程序架构 2.2、Web3 应用程序架构——最简架构 2.3、Web3 应用程序架构——前端web3.js ether.js 2.4、Web3 应用程序架构—…

浅谈菊风实时音视频 (RTC)与实时操作系统 (RTOS) 在智能硬件领域应用

近年来,菊风通过实时音视频赋能智能手表、智能门禁、智能门锁/门铃、智能眼镜等数十种智能硬件,与一众合作伙伴共同探索在IoT智能硬件领域的不同场景应用,积累了丰富的实践经验。在智能硬件中,RTOS因其轻量化的系统内核&#xff0…

C#基础之函数基础

函数 文章目录 1、函数基础1、概念2、函数位置3、基本语法4、实际运用5、return 2、ref 和 out1、ref 和 out 使用2、区别思考 登录 3、变长参数和参数默认值1、变长参数2、参数默认值 4、函数重载5、递归函数思考1 阶乘思考2 阶乘相加思考3 竹竿减半思考4 递归循环输出 1、函数…

多客圈子交友系统 uniapp+thinkphp6适配小程序/H5/app/api全开源,多款插件自选,支持个性定制!

网上交友的优点包括: 1. 方便:网上交友可以随时随地进行,不受时间和空间的限制,方便且高效。 2. 匿名性:网上交友可以实现匿名性,用户可以匿名地搜索、聊天或交换信息,保护个人隐私和安全。 3.…

RE | BUUCTF 刮开有奖1

题目:BUUCTF 刮开有奖1 参考: BUUCTF 刮开有奖(特别详细了,尽自己全力理解所写)(这是主参考,写得很详细 BUUCTF_刮开有奖(主参考的参考,思路很清晰 我是大菜鸡…尽力写自…

报错:图片验证码接口对接vue+springboot(下一个笔记会记录整个验证码的代码)

问题:空指针异常ai: 根据错误堆栈信息中提供的方法调用位置,看起来空指针异常是在 AuthCodeServiceImpl 类的 authUserCoded 方法的第 41 行发生的。 为了解决这个问题,你可以检查 AuthCodeServiceImpl 类中 authUserCoded 方法的第 41 行&am…

Qt xml示范

1.数据格式 #ifndef XML_DATA_H #define XML_DATA_H#include<QWidget>struct Student {int s_id;QString s_name;double s_math_score;double s_english_score;}; struct Teacher{int t_id;QString t_name;QVector<Student> t_students_v; };#endif // XML_DATA_H…

【JavaEE网络】TCP/IP协议:细节与应用

目录 TCP/IP协议协议格式传输层重点协议UDP协议UDP协议端格式 UDP的特点TCP协议TCP协议端格式 TCP的特点 TCP/IP协议 协议格式 应用层&#xff08;后端开发必知必会&#xff09;&#xff1a;这一层也有很多现成的协议&#xff08;后面还会重点介绍HTTP协议&#xff0c;这是做…

从0开始用C写贪吃蛇(基于链表)

目录 1. 游戏背景 2. 游戏效果演示​编辑​编辑​编辑 3. 实现目标 4. 技术要点 5. 控制台程序 5.1 设置控制台窗口的长宽和名字 5.2 控制台屏幕上的坐标COORD 6.Win32 API 6.1 GetStdHandle 6.2 GetConsoleCursorInfo 6.3 CONSOLE_CURSOR_INFO 6.4 SetConsole…

CSS 之 transition过渡动画

一、简介 ​ CSS 制作 Web 动画有两种方式&#xff1a; 帧动画&#xff08;Keyframe Animation&#xff09;和过渡动画&#xff08;Transition Animation&#xff09;。针对不同的业务场景中&#xff0c;我们应该选择不同的动画方式&#xff0c;通常来说&#xff1a;对于交互元…

iOS runtime

—参考文章— 暂时没有 一、如何在Xcode中使用runtime Xcode默认是不建议开发者使用runtime的&#xff0c;所以在Xcode直接使用runtime的语法是会报错误的。 如果要在Xcode中使用runtime的语法&#xff0c;是需要配置一下才可以使用&#xff0c;配置方法如下图&#xff1a; 首…

开源向量数据库比较:Chroma, Milvus, Faiss,Weaviate

语义搜索和检索增强生成(RAG)正在彻底改变我们的在线交互方式。实现这些突破性进展的支柱就是向量数据库。选择正确的向量数据库能是一项艰巨的任务。本文为你提供四个重要的开源向量数据库之间的全面比较&#xff0c;希望你能够选择出最符合自己特定需求的数据库。 什么是向量…

Microsoft Edge浏览器:高效、简洁、个性化的网页浏览体验

Microsoft Edge是微软公司推出的一款网络浏览器&#xff0c;它是基于Chromium开源项目开发的&#xff0c;因此与Google Chrome有很多相似之处。以下是一些使用Microsoft Edge的心得体会&#xff1a; 1. 界面简洁&#xff1a;Microsoft Edge的界面设计非常简洁&#xff0c;用户…

Spring Boot集成RabbitMQ快速入门Demo

1.什么是RabbitMQ&#xff1f; RabbitMQ是一款使用Erlang语言开发的&#xff0c;基于AMQP协议的消息中间件&#xff0c;作为一款优秀的消息系统&#xff0c;RabbitMQ有高并发、可扩展等优势&#xff0c;并适用于大型系统中各个模块之间的通信。 RabbitMQ的特点为&#xff1a; 持…

微信小程序按钮点击时的样式hover-class=“hover“

小程序的button组件很好用&#xff0c;按钮点击的时候会显示点击状态&#xff0c;默认的就是颜色加深 但是我们改变了button的背景色之后&#xff0c;就看不出点击效果了&#xff0c;解决起来也很简单 关键代码就是小程序的 hover-class 属性&#xff0c;需要注意的是&#xff…

Mysql(数据库)知识详解【6】~{锁,架构}

数据库锁和架构是两个不同的概念&#xff0c;但它们都与数据库管理系统&#xff08;DBMS&#xff09;的性能和并发控制有关。 数据库锁&#xff1a; 数据库锁是一种同步机制&#xff0c;用于控制多个事务对共享资源的访问。锁可以确保数据的一致性和完整性&#xff0c;防止多个…

AI 重写人类DNA,开源基因编辑器问世;安卓版Gemini新增多项功能

&#x1f989; AI新闻 &#x1f680; AI 重写人类DNA&#xff0c;开源基因编辑器问世 摘要&#xff1a;初创公司 Profluent 最新宣布&#xff0c;开发出世界首个完全由 AI 设计的基因编辑器&#xff0c;并成功应用于人类细胞 DNA&#xff0c;这一技术可谓是分子生物学的一大突…