鸢尾花数据集的各种玩法

article/2025/11/10 21:51:20

目录

  • 鸢尾花数据集
  • 下载鸢尾花数据集iris
    • csv文件
    • 下载数据集
  • Pandas访问csv数据集
    • Pandas库
    • Pandas二维数据基本操作
      • 读取csv数据集文件
      • 设置列标题
      • names参数
    • 访问数据
    • 显示统计信息
    • DataFrame的常用属性:ndim、size、shape
    • 转化为NumPy数组
      • 访问数组元素–索引和切片
  • 鸢尾花数据集可视化
    • 鸢尾花数据散点图
    • 色彩映射

鸢尾花数据集

鸢尾花数据集是在加拿大的加斯帕半岛,在同一时间的同一个时段,在相同的牧场上由同一个人使用相同的测量仪器测量出来的。
包括三种鸢尾花类别,每个类别有50个样本,每个样本中包括4种鸢尾花的属性特征,和鸢尾花的品种。
在这里插入图片描述
这4种属性特征分别是花萼的长度和宽度,花瓣的长度和宽度,花萼是花的最外面一层的叶片。
这是鸢尾花数据集中的一部分数据。
在这里插入图片描述

可以看到前4列分别对应4种属性特征,最后一列是鸢尾花的品种,也就是数据的标签,这个数据集中包含的三个品种分别是山鸢尾,变色鸢尾和维基尼亚鸢尾。

鸳尾花数据集不是tensorflow和keras中集成了内置数据集,因此在使用之前,首先需要下载这些数据集。

在tensorflow中,要从指定的网络地址下载数据集,可以使用keras.utils模块中自带的下载函数get_file()

tk.keras.utils.get_file(fname, origin, cache_dir)

其中参数

  • fname是下载后的文件名
  • origin表示文件的url地址
  • cache_dir表示下载后文件所存储的位置,这是windows系统中下载后的默认保存路径。
    c:\Users\Administrator\.keras\datasets

这个函数的返回值是下载后的文件在本地磁盘中的绝对路径。
在执行这个函数时,首先会检查要下载的文件,fname是否存在,如果不存在则会根据origin参数提供的url地址下载文件,并把它命名为fname,存储在指定目录下,并返回文件地址。如果文件已经存在,则不再下载文件,直接返回文件地址。

下载鸢尾花数据集iris

我们使用get_file()函数来下载数据集

鸢尾花数据集划分为训练数据集和测试数据集,分别放在不同的两个文件中,文件名是iris_training.csviris_test.cvs。其中,训练数据集中有12条数据,测试数据集有30条数据。

这里我们只下载训练数据集。

TRAIN_URL = "http://download.tensorflow.org/data/iris_training.csv"
train_path = tf.keras.utils.get_file("iris_train.csv", TRAIN_URL)

第一次执行这段代码时,会下载数据集。
在这里插入图片描述
这个数据集很小,所以下载的速度非常快。执行这段代码后,就可以在下载路径中找到这个数据及文件了。

csv文件

Csv文件是一种字符分割的文件,以纯文本形式存储表格。可以使用记事本打开,也可以使用Excel打开。
下面使用Excel打开这个文件
在这里插入图片描述

第1行这个120表示一共有120行数据。数据样本从第2行开始到第121行,所有数据都有5列。
其中前4列是鸢尾花的属性,第5列是鸳尾花的品种,用整数0,1,2分别表示山鸢尾,变色鸢尾和维基尼亚鸢尾。

下载数据集

如果以后要下载其他数据集,只需要改变url和fname就可以了。
为了提高代码的通用性,我们使用split()函数来分割字符串。

# 下载数据集
TRAIN_URL = "http://download.tensorflow.org/data/iris_training.csv"
train_path = tf.keras.utils.get_file(TRAIN_URL.split('/')[-1], TRAIN_URL)

Pandas访问csv数据集

Pandas库

Pandas的名称来自于panel data和data analysis,是Python环境下最有名的用于数据统计和分析的第三方库。通过它可以高效方便的访问和操作大型数据集,在Anaconda中已经自带了pandas库,可以直接使用import语句导入,通常别名为pd。

import pandas as pd

Pandas二维数据基本操作

读取csv数据集文件

Pandas中使用read_csv()方法读取csv格式的数据文件。

pd.read_csv(filepath_or_buffer, header, names)
pd.read_csv(C:\Users\dell\.keras\datasets\iris_train.csv)

其中参数filepath_or_buffer是文件名,可以是绝对路径也可以是相对路径。
如果之前没有下载,那么使用get _file()函数下载数据集的返回值就是数据集文件在本地磁盘中的绝对路径,可以直接使用它作为read_csv()函数的参数。
这是运行结果。
在这里插入图片描述
可以看到返回值是一个二维表格,其中一共有120行,5列。
read_csv()函数的返回值赋值给变量df_iris,并输出它的数据类型,

df_iris = pd.read_csv(train_path)
print(type(df_iris))

在这里插入图片描述

这个DataFrame是二维表格类型,它是pandas中的一种非常常用的数据类型。

设置列标题

read_csv()函数中,可以通过header参数指定数据表中的某一行或者某几行作为列标题,也就是表头。

pd.read_csv(filepath_or_buffer, header, names)

header的取值是行号,行号从0开始。

  • header=0,第一行的数据作为列标题(默认设置)
  • header=None,没有列标题

例如:

  • header=0,第一行数据作为列标题
df_iris = pd.read_csv(train_path, header=0)
df_iris.head()

运行结果:
在这里插入图片描述
可以看到数据集中的第1行数据被当做了列标题,但是这一行数据其实并不是列标题,这些数据分别是样本的条数以及三种鸢尾花的名称,因此我们把header设置为None表示数据文件中没有表头。

  • header=None,第一行数据作为列标题
df_iris = pd.read_csv(train_path, header=None)
df_iris.head()

运行结果:
在这里插入图片描述
可以看到系统自动的加上了数字序列,0~4作为列标题,这样显然并不友好,第1行数据现在被作为了数据样本,这样也不对,这一行数据既不是列标题,也不是数据样本,为了正确的显示列标题和数据样本,可以设置read_csv()方法中的names参数。

names参数

自定义列标题,代替header参数指定的列标题。

pd.read_csv(filepath_or_buffer, header, names)

names参数的值是一个列表用来指定自定义列标题,从而代替header参数指定的列标题。

在这个例子中,我们希望自己定义一个更加友好的列标题,并且不显示第1行数据,可以首先使用header=0,把第1行看作列标题,然后再使用names参数指定新的列标题替换掉原有的列标题。

COLUMN_NAMES = ['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth', 'Species']
df_iris = pd.read_csv(train_path, header=0, names=COLUMN_NAMES)
df_iris.head()

运行结果:
在这里插入图片描述
可以看到COLUMN_NAMES中的元素被显示为表头了

访问数据

head()函数:参数为空时,默认读取二维数据表中的前5行数据。
也可以设置参数n,读取前n行数据

head(n)

在这里插入图片描述
tail()函数:读取后n行数据

tail(n)

参数为空时,读取后5行数据。
在这里插入图片描述
如果要更加灵活的读取指定的数据行,可以使用索引和切片

df_iris[10:16]

这是读取行号 10 - 15 的数据样本
在这里插入图片描述

显示统计信息

describe()方法:显示二维数组的统计信息。

describe()

在这里插入图片描述
从而了解数据是否有缺失,以及数据的分布情况。

DataFrame的常用属性:ndim、size、shape

属性描述
ndim数据表的维数
shape数据表的形状
size数据表元素的总个数
df_iris.ndim
# 2
df_iris.shape
# (120, 5)
df_iris.size
# 600

转化为NumPy数组

在对DataFrame数据进行后续处理时,经常需要将它转换成NumPy数组。这时,可以直接使用NumPy中的创建数组函数array()

iris = np.array(df_iris)
print(type(df_iris))
# <class 'pandas.core.frame.DataFrame'>
print(type(iris))
# <class 'numpy.ndarray'>

也可以使用.values.as_matrix()来将Dataframe转化为数组

iris = df_iris.values
iris = df_iris.as_matrix()

访问数组元素–索引和切片

转化为NumPy后,也可以使用数组的索引和切片访问指定的数据。
例如:

  • 读取前六行数据
iris[0:6]
"""
array([[6.4, 2.8, 5.6, 2.2, 2. ],[5. , 2.3, 3.3, 1. , 1. ],[4.9, 2.5, 4.5, 1.7, 2. ],[4.9, 3.1, 1.5, 0.1, 0. ],[5.7, 3.8, 1.7, 0.3, 0. ],[4.4, 3.2, 1.3, 0.2, 0. ]])
"""
  • 读取前六行数据的前4列
iris[0:6, 0:4]
"""
array([[6.4, 2.8, 5.6, 2.2],[5. , 2.3, 3.3, 1. ],[4.9, 2.5, 4.5, 1.7],[4.9, 3.1, 1.5, 0.1],[5.7, 3.8, 1.7, 0.3],[4.4, 3.2, 1.3, 0.2]])
"""
  • 得到所有数据行中“鸢尾花的种类”的取值
iris[:, 4]
"""
array([2., 1., 2., 0., 0., 0., 0., 2., 1., 0., 1., 1., 0., 0., 2., 1., 2.,2., 2., 0., 2., 2., 0., 2., 2., 0., 1., 2., 1., 1., 1., 1., 1., 2.,2., 2., 2., 2., 0., 0., 2., 2., 2., 0., 0., 2., 0., 2., 0., 2., 0.,1., 1., 0., 1., 2., 2., 2., 2., 1., 1., 2., 2., 2., 1., 2., 0., 2.,2., 0., 0., 1., 0., 2., 2., 0., 1., 1., 1., 2., 0., 1., 1., 1., 2.,0., 1., 1., 1., 0., 2., 1., 0., 0., 2., 0., 0., 2., 1., 0., 0., 1.,0., 1., 0., 0., 0., 0., 1., 0., 2., 1., 0., 2., 0., 1., 1., 0., 0.,1.])
"""

Pandas拥有丰富的数据处理函数,不仅可以处理二维数据表,还支持时间序列分析,具有非常强大的数据分析能力。

鸢尾花数据集可视化

这里,我们依然借助数据可视化的方法来观察鸢尾花的数据。

鸢尾花数据散点图

在这里插入图片描述

在这张图中,横坐标和列坐标分别是鸢尾花的花瓣长度和花瓣宽度。不同颜色代表不同种类的鸢尾花。
很容易看出来,花瓣最窄最短的是山鸢尾,花瓣最长最宽的是维基尼亚鸢尾,花瓣尺寸居中的是变色鸢尾,这种可视化后的数据和原始的数字相比更加的直观和清晰。

花瓣长度

iris[:,2]
array([5.6, 3.3, 4.5, 1.5, 1.7, 1.3, 1.5, 5.1, 4.4, 1.5, 3.9, 4.9, 1.2,1.7, 6.7, 4.7, 5.9, 6.6, 5.3, 1.5, 5.7, 5.6, 1.3, 5.6, 5.8, 1.5,4. , 5.1, 4.5, 5. , 4.4, 3. , 4.5, 5.5, 4.8, 5.7, 5.1, 5.1, 1.5,1.4, 6.4, 5.1, 5.2, 1.9, 1.6, 5. , 1.6, 6.9, 1. , 6. , 1.4, 4.4,4. , 1.2, 4.7, 4.8, 6.1, 5.1, 5.4, 3.5, 3.9, 5.6, 5. , 5.5, 4.5,6.3, 1.3, 6.1, 5.5, 1.5, 1.3, 4.6, 1.3, 6.1, 4.9, 1.5, 3.8, 4.2,4.5, 5.3, 1.5, 4.7, 4.6, 4.2, 5.6, 1.5, 4.8, 4.5, 5.1, 1.3, 5.2,4.7, 1.4, 1.5, 5.8, 1.4, 1.4, 6.7, 4.8, 1.6, 1.4, 3.3, 1.3, 4.1,1.6, 1.4, 1.5, 1.4, 3.6, 1.6, 4.9, 4.1, 1.6, 6. , 1.6, 4.4, 4.2,1.4, 1.4, 3.7])

花瓣宽度

iris[:,3]
array([2.2, 1. , 1.7, 0.1, 0.3, 0.2, 0.4, 2.3, 1.4, 0.4, 1.4, 1.5, 0.2,0.4, 2.2, 1.6, 2.3, 2.1, 2.3, 0.4, 2.1, 2.1, 0.4, 1.4, 1.6, 0.2,1.2, 1.8, 1.5, 1.7, 1.3, 1.1, 1.5, 2.1, 1.8, 2.3, 2. , 2.4, 0.3,0.3, 2. , 1.9, 2.3, 0.4, 0.2, 1.5, 0.2, 2.3, 0.2, 1.8, 0.2, 1.4,1.3, 0.2, 1.4, 1.8, 1.9, 1.9, 2.3, 1. , 1.1, 2.4, 1.9, 1.8, 1.5,1.8, 0.2, 2.5, 1.8, 0.2, 0.2, 1.3, 0.2, 2.3, 1.8, 0.1, 1.1, 1.3,1.5, 1.9, 0.2, 1.4, 1.5, 1.3, 2.4, 0.1, 1.4, 1.3, 1.6, 0.3, 2. ,1.2, 0.3, 0.2, 2.2, 0.3, 0.2, 2. , 1.8, 0.2, 0.2, 1. , 0.3, 1. ,0.4, 0.2, 0.2, 0.2, 1.3, 0.2, 1.8, 1.3, 0.2, 2.5, 0.6, 1.2, 1.2,0.2, 0.1, 1. ])

将它们作为横坐标和纵坐标绘制散点图

plt.scatter(iris[:, 2], iris[:, 3])
plt.show()

在这里插入图片描述
虽然散点图绘制出来了,但是不同类型的鸢尾花并没有被区分开。我们希望不同品种使用不同的颜色,这就要用到色彩映射。

色彩映射

将参数c指定为一个列表或数组,所绘制图形的颜色,可以随这个列表或数组中元素的值而改变,变换所对应的颜色由参数cmap中的颜色所提供。

plt.scatter(x, y, c, cmap)
# 颜色映射
x = np.arange(10)
y = np.arange(10)
dot_color = [0, 1, 2, 0, 1, 2, 2, 1, 1, 0]
plt.scatter(x, y, c=dot_color, cmap='brg')
plt.show()

在这里插入图片描述

在这里插入图片描述
下面,我们用颜色映射来改进鸢尾花的散点图。我们应该用鸢尾花的种类来作为颜色变换的依据。鸢尾花的种类是数据集中的最后一列,也就是第二维的索引值为4.

plt.scatter(iris[:, 2], iris[:, 3], c=iris[:, 4], cmap='brg')
plt.show()

在这里插入图片描述可以看到,不同品种的鸢尾花,已经采用不同颜色分开了。
下面再增加标题和横纵标签

TRAIN_URL = "http://download.tensorflow.org/data/iris_training.csv"
train_path = tf.keras.utils.get_file(TRAIN_URL.split('/')[-1], TRAIN_URL)COLUMN_NAMES = ['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth', 'Species']
df_iris = pd.read_csv(train_path, header=0, names=COLUMN_NAMES)iris = np.array(df_iris)plt.scatter(iris[:, 2], iris[:, 3], c=iris[:, 4], cmap='brg')
plt.title("Anderson's Iris Data Set\n(Blue->Setosa | Red->Versicolor | Green->Virginica)")
plt.xlabel(COLUMN_NAMES[2])
plt.ylabel(COLUMN_NAMES[3])
plt.show()

在这里插入图片描述
在这张图中,我们实现了对鸢尾花数据集中的属性,花瓣长度,花瓣宽度的可视化。可以发现,通过花瓣的尺寸可以比较好的区分开,不同品种的鸢尾花。那么通过这个数据集中的其他属性,是否也能够比较好的区分出鸢尾花的种类呢?

在鸢尾花数据集中,有4个属性。将所有的属性两两组合可以得到16种组合可以看到对角线上的这4种组合,是同一种属性自己的组合可以去除,右上角的这6种情况和左下角的这6种情况是对称的,就是说有效的组合有6种。
在这里插入图片描述
这是把所有可能的组合全部可视化在一张图的结果。
在这里插入图片描述

TRAIN_URL = "http://download.tensorflow.org/data/iris_training.csv"
train_path = tf.keras.utils.get_file(TRAIN_URL.split('/')[-1], TRAIN_URL)COLUMN_NAMES = ['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth', 'Species']
df_iris = pd.read_csv(train_path, header=0, names=COLUMN_NAMES)iris = np.array(df_iris)# 设置画布尺寸
fig = plt.figure('Iris Data', figsize=(15, 3))
# 设置整个的画布标题
fig.suptitle("Anderson's Iris Data Set\n(Blue->Setosa | Red->Versicolor | Green->Virginica)")for i in range(4):plt.subplot(1, 4, i + 1)if i == 0:plt.text(0.3, 0.5, COLUMN_NAMES[0], fontsize=15)else:plt.scatter(iris[:, i], iris[:, 0], c=iris[:, 4], cmap='brg')plt.title(COLUMN_NAMES[i])plt.ylabel(COLUMN_NAMES[0])# 调整子图间距
plt.tight_layout(rect=[0, 0, 1, 0.9])
plt.show()

在这里插入图片描述
下面采用双重循环来绘制4*4的大图
在这里插入图片描述

TRAIN_URL = "http://download.tensorflow.org/data/iris_training.csv"
train_path = tf.keras.utils.get_file(TRAIN_URL.split('/')[-1], TRAIN_URL)COLUMN_NAMES = ['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth', 'Species']
df_iris = pd.read_csv(train_path, header=0, names=COLUMN_NAMES)iris = np.array(df_iris)# 设置画布尺寸
fig = plt.figure('Iris Data', figsize=(15, 15))
# 设置整个的画布标题
fig.suptitle("Anderson's Iris Data Set\n(Blue->Setosa | Red->Versicolor | Green->Virginica)")for i in range(4):for j in range(4):plt.subplot(4, 4, 4 * i + (j + 1))if i == j:plt.text(0.3, 0.4, COLUMN_NAMES[i], fontsize=15)else:plt.scatter(iris[:, j], iris[:, i], c=iris[:, 4], cmap='brg')if i == 0:plt.title(COLUMN_NAMES[j])if j == 0:plt.ylabel(COLUMN_NAMES[i])# 调整子图间距
plt.tight_layout(rect=[0, 0, 1, 0.93])
plt.show()

在这里插入图片描述
可以看出来,通过花瓣和花萼的属性的任何组合,都能够很容易地将山鸢尾和另外两种鸢尾花区分开来。而变色鸢尾和维基尼亚鸢尾,通过花瓣属性能够比较容易的区分,通过花落属性则不能明显的区分。

这种可视化数据的方法为我们分析数据提供了有效的手段。


http://chatgpt.dhexx.cn/article/Uvm83Qbv.shtml

相关文章

iris鸢尾花数据集最全数据分析

写在前面 在写这篇文章之前&#xff0c;首先安利下jupyter&#xff0c;简直是神作&#xff0c;既可以用来写文章&#xff0c;又可以用来写代码&#xff0c;文章和代码并存&#xff0c;简直就是写代码/文章/教程的利器。 安装很简单&#xff1a;pip install jupyter 使用很简单…

sklearn数据集——iris鸢尾花数据集

参考书籍&#xff1a;Python机器学习基础教程 1、初始数据 鸢尾花&#xff08;Iris&#xff09;数据集&#xff0c;是机器学习和统计学中一个经典的数据集。它包含在 scikit-learn 的 datasets 模块中。 我们可以调用 load_iris 函数来加载数据&#xff1a; from sklearn.da…

重拾Iris鸢尾花数据集分析

最近我又又又开始了我的机器学习道路&#xff0c;并且回过头来重新看了一遍Iris数据分析&#xff0c;作为机器学习里面最经典的案例之一&#xff0c;鸢尾花既是我入门机器学习到放弃的地方&#xff0c;又是再次细读之后给予我灵感的地方。 下面介绍一下这次灵感之旅&am…

Python-鸢尾花数据集Iris 数据可视化 :读取数据、显示数据、描述性统计、散点图、直方图、KDE图、箱线图

本博客运行环境为Jupyter Notebook、Python3。使用的数据集是鸢尾花数据集&#xff08;Iris&#xff09;。主要叙述的是数据可视化。 IRIS数据集以鸢尾花的特征作为数据来源&#xff0c;数据集包含150个数据集&#xff0c;有4维&#xff0c;分为3 类&#xff0c;每类50个数据&a…

《机器学习》分析鸢尾花数据集

转载地址&#xff1a;https://www.cnblogs.com/mandy-study/p/7941365.html 分析鸢尾花数据集 下面将结合Scikit-learn官网的逻辑回归模型分析鸢尾花示例&#xff0c;给大家进行详细讲解及拓展。由于该数据集分类标签划分为3类&#xff08;0类、1类、2类&#xff09;&#xff…

笔记篇二:鸢尾花数据集分类

目录 一、鸢尾花数据集 二、逻辑回归分析 三、逻辑回归实现鸢尾花数据集分类 四、散点图绘制 一、鸢尾花数据集 1、问题 Iris 鸢尾花数据集是一个经典数据集&#xff0c;在统计学习和机器学习领域都经常被用作示例。数据集内包含 3 类共 150 条记录&#xff0c;每类各 5…

IRIS鸢尾花数据集(多种格式)-下载地址

最近看的例子有用到IRIS数据集&#xff0c; 个人找了半天&#xff0c;才找到合适格式的数据集。 因此&#xff0c;将我找到的数据集分享给大家&#xff0c;以免大家像我一样找很久。 我这里有3种格式的数据集&#xff0c;分别是&#xff1a; 1. iris.csv 2. Iris.data 3.…

鸢尾花数据集基本用法

Iris鸢尾花数据集是一个经典的数据集。 包含3类共150条记录&#xff0c;每类各50项数据&#xff0c;每一条记录都有四个体征。 可以通过这四个特征来预测鸢尾花属于哪一个品种。 一.鸢尾花数据集 首先导入数据集&#xff0c;用pandas读入iris.csv数据集&#xff0c;读取后的…

鸢尾花(iris)数据集分析

原文链接&#xff1a;https://www.jianshu.com/p/52b86c774b0b Iris 鸢尾花数据集是一个经典数据集&#xff0c;在统计学习和机器学习领域都经常被用作示例。数据集内包含 3 类共 150 条记录&#xff0c;每类各 50 个数据&#xff0c;每条记录都有 4 项特征&#xff1a;花萼长度…

鸢尾花(iris)数据集

鸢尾花&#xff08;iris&#xff09;数据集 更新时间&#xff1a;2021-03-21 01:01:09标签&#xff1a;数据集 鸢尾花 说明 机器学习教程 正在计划编写中&#xff0c;欢迎大家加微信 sinbam 提供意见、建议、纠错、催更。 鸢【音&#xff1a;yuān】尾花&#xff08;Iris&a…

数据分析——鸢尾花数据集

鸢尾花数据集 Iris 鸢尾花数据集内包含 3 类分别为山鸢尾&#xff08;Iris-setosa&#xff09;、变色鸢尾&#xff08;Iris-versicolor&#xff09;和维吉尼亚鸢尾&#xff08;Iris-virginica&#xff09;&#xff0c;共 150 条记录&#xff0c;每类各 50 个数据&#xff0c;每…

机器学习--鸢尾花数据集实战

Iris数据集实战 本次主要围绕Iris数据集进行一个简单的数据分析, 另外在数据的可视化部分进行了重点介绍. 环境 win8, python3.7, jupyter notebook 目录 1. 项目背景 2. 数据概览 3. 特征工程 4. 构建模型 正文 1. 项目背景 鸢尾属(拉丁学名&#xff1a;Iris L.), …

sklearn基础篇(三)-- 鸢尾花(iris)数据集分析和分类

后面对Sklearn的学习主要以《Python机器学习基础教程》和《机器学习实战基于scikit-learn和tensorflow》&#xff0c;两本互为补充进行学习&#xff0c;下面是开篇的学习内容。 1 初识数据 iris数据集的中文名是安德森鸢尾花卉数据集&#xff0c;英文全称是Anderson’s Iris d…

机器学习——鸢尾花数据集

机器学习——鸢尾花数据集 数据集简介导入数据集可视化主成分分析 鸢尾花数据集即iris iris数据集文件&#xff1a; https://pan.baidu.com/s/1saL_4Q9PbFJluU4htAgFdQ .提取码&#xff1a;1234 数据集简介 数据集包含150个样本&#xff08;数据集的行&#xff09;数据集包含…

实验一:鸢尾花数据集分类

实验一&#xff1a;鸢尾花数据集分类 一、问题描述 利用机器学习算法构建模型&#xff0c;根据鸢尾花的花萼和花瓣大小&#xff0c;区分鸢尾花的品种。实现一个基础的三分类问题。 二、数据集分析 Iris 鸢尾花数据集内包含 3 种类别&#xff0c;分别为山鸢尾&#xff08;Iris…

C++优化之使用emplace

在C开发过程中&#xff0c;我们经常会用STL的各种容器&#xff0c;比如vector&#xff0c;map&#xff0c;set等&#xff0c;这些容器极大的方便了我们的开发。在使用这些容器的过程中&#xff0c;我们会大量用到的操作就是插入操作&#xff0c;比如vector的push_back&#xff…

C++ emplace_back

概述 在C11中&#xff0c;在引入右值的升级后&#xff0c;调用push_back变的更为高效&#xff0c;原本需要调用构造函数构造这个临时对象&#xff0c;然后调用拷贝构造函数将这个临时对象放入容器中。在C11升级后&#xff0c;只需要调用构造函数&#xff0c;然后调用移动拷贝函…

list容器下的 emplace_front() splice() 函数

目录 emplace_front()splice()作者的坑时间复杂度注意点&#xff1a;疑惑处 emplace_front() emplace中文为安置&#xff0c;那么这个函数就是安置到什么什么前面。 void emplace_front(value_type val) ;时间复杂度&#xff1a;O(1) splice() splice译为粘接&#xff0c;作用…

C++优化之使用emplace、emplace_back

在C开发过程中&#xff0c;我们经常会用STL的各种容器&#xff0c;比如vector&#xff0c;map&#xff0c;set等。在使用这些容器的过程中&#xff0c;我们会大量用到的操作就是插入操作&#xff0c;比如vector的push_back&#xff0c;map的insert&#xff0c;set的insert。这些…

emplace_back深度剖析

一&#xff0c;emplace_back和push_back 1&#xff0c;直接插入对象&#xff1a;emplace_back和push_back无区别 ①当传递已经存在的对象时&#xff0c;是无区别的 #include <iostream> #include <vector>using namespace std;/* C11 STL 容器 push/inser…