利用NumPy和Pandas进行机器学习数据处理与分析

简介: 利用NumPy和Pandas进行机器学习数据处理与分析

🍀Numpy介绍

在进行科学计算和数据分析时,处理大量数据和进行高效的数值计算是不可或缺的。为了满足这些需求,Python语言提供了一个被广泛使用的库——Numpy。Numpy是Numerical Python的缩写,它为Python提供了功能强大的多维数组对象和一组用于处理这些数组的函数。

本文将介绍Numpy的基本语法,包括数组的创建、索引和切片、数学运算、广播和聚合等功能,以帮助读者快速上手和熟练使用Numpy进行数值计算。


🍀数组的创建

Numpy的核心对象是ndarray,它是一个多维数组对象。我们可以使用Numpy提供的函数创建数组,例如

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)

运行结果如下


🍀索引和切片

通过索引和切片操作,我们可以访问和修改数组中的元素。Numpy的索引从0开始,可以使用整数、切片或布尔数组作为索引,例如

print(arr[0])  # 输出第一个元素
print(arr[1:3])  # 输出第二个和第三个元素
print(arr[arr > 3])  # 使用布尔数组进行索引

运行结果如下


🍀数学运算

Numpy提供了丰富的数学函数和运算符,可以对数组进行各种数值计算。例如,可以对数组进行加减乘除、求幂、取余等运算

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)  # 数组相加
print(a * 2)  # 数组乘以常数
print(np.sin(a))  # 三角函数运算

运行结果如下

🍀广播

Numpy的广播功能使得对不同形状的数组进行运算变得简单。当两个数组的形状不同时,Numpy会自动调整数组的形状,使它们能够进行元素级别的运算

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([1, 2, 3])
print(a + b)  # 广播运算

运行结果如下

🍀聚合操作

Numpy提供了各种聚合函数,可以对数组的元素进行统计分析。例如,可以计算数组的和、平均值、最大值、最小值等

a = np.array([1, 2, 3, 4, 5])
print(np.sum(a))  # 计算数组元素的和
print(np.mean(a))  # 计算数组元素的平均值
print(np.max(a))  # 计算数组元素的最大值
print(np.min(a))  # 计算数组元素的最小值

运行结果如下

🍀Pandas介绍

在机器学习领域,数据处理是非常重要的一环。而Pandas作为Python中最受欢迎的数据处理库之一,提供了丰富的工具和灵活的语法,使得数据清洗、转换和探索变得简单高效。本篇博客将介绍Pandas的基本语法,以及如何利用Pandas进行数据处理,从而为机器学习任务打下坚实的基础。

🍀什么是Series?

Series是pandas中的一维标记数组。它类似于Python中的列表或数组,但提供了更多的功能和灵活性。我们可以使用Series来存储和操作单个列的数据。

首先,让我们导入pandas库并创建一个简单的Series:

import pandas as pd
# 创建一个Series
data = pd.Series([1, 3, 5, np.nan, 6, 8])
print(data)

运行结果如下

在这个例子中,我们创建了一个包含整数和NaN值的Series。每个值都有一个与之关联的索引,它们以0为起始。Series的数据类型由pandas自动推断得出。

🍀什么是DataFrame?

DataFrame是pandas中的二维表格数据结构,类似于Excel中的工作表或数据库中的表。它由行和列组成,每列可以有不同的数据类型。DataFrame是pandas中最常用的数据结构,我们可以使用它来处理和分析结构化数据。

下面是一个创建DataFrame的例子:

# 创建一个字典
data = {'Name': ['John', 'Emma', 'Mike', 'Sophia'],
        'Age': [25, 28, 22, 30],
        'City': ['London', 'New York', 'Paris', 'Tokyo']}
# 创建DataFrame
df = pd.DataFrame(data)
print(df)

运行结果如下

在这个例子中,我们使用一个字典来创建DataFrame。字典的键表示列名,对应的值是列表类型,表示该列的数据。我们可以看到DataFrame具有清晰的表格结构,并且每个列都有相应的标签,方便阅读

🍀访问和筛选数据

我们可以使用索引、标签或条件来访问和筛选数据。例如,要访问DataFrame中的一列数据,可以使用列名:

# 访问列
print(df['Name'])

运行结果如下

要访问DataFrame中的一行数据,可以使用iloc和loc方法:

# 访问行
print(df.iloc[0])  # 根据索引访问
print(df.loc[0])  # 根据标签访问

运行结果如下

要根据条件筛选数据,可以使用布尔索引:要根据条件筛选数据,可以使用布尔索引:

# 筛选数据
filtered_df = df[df['Age'] > 25]
print(filtered_df)

运行结果如下

🍀添加和删除数据

我们可以使用相应的方法向Series或DataFrame中添加或删除数据。例如,要添加一列数据,可以将一个新的Series赋值给DataFrame的一个新列名

# 添加列
df['Gender'] = ['Male', 'Female', 'Male', 'Female']
print(df)

运行结果如下

要删除列或行,可以使用drop方法

# 删除列
df = df.drop('City', axis=1)
print(df)

运行结果如下

# 删除行
df = df.drop(0)
print(df)

运行结果如下

挑战与创造都是很痛苦的,但是很充实。


相关文章
|
6天前
|
机器学习/深度学习 算法 数据可视化
Fisher模型在统计学和机器学习领域通常指的是Fisher线性判别分析(Fisher's Linear Discriminant Analysis,简称LDA)
Fisher模型在统计学和机器学习领域通常指的是Fisher线性判别分析(Fisher's Linear Discriminant Analysis,简称LDA)
|
14天前
|
SQL 并行计算 API
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
|
14天前
|
机器学习/深度学习 数据采集 大数据
驾驭大数据洪流:Pandas与NumPy在高效数据处理与机器学习中的核心作用
【7月更文挑战第13天】在大数据时代,Pandas与NumPy是Python数据分析的核心,用于处理复杂数据集。在一个电商销售数据案例中,首先使用Pandas的`read_csv`加载CSV数据,通过`head`和`describe`进行初步探索。接着,数据清洗涉及填充缺失值和删除异常数据。然后,利用`groupby`和`aggregate`分析销售趋势,并用Matplotlib可视化结果。在机器学习预处理阶段,借助NumPy进行数组操作,如特征缩放。Pandas的数据操作便捷性与NumPy的数值计算效率,共同助力高效的数据分析和建模。
|
13天前
|
机器学习/深度学习 数据采集 数据处理
重构数据处理流程:Pandas与NumPy高级特性在机器学习前的优化
【7月更文挑战第14天】在数据科学中,Pandas和NumPy是数据处理的关键,用于清洗、转换和计算。用`pip install pandas numpy`安装后,Pandas的`read_csv`读取数据,`fillna`处理缺失值,`drop`删除列。Pandas的`apply`、`groupby`和`merge`执行复杂转换。NumPy加速数值计算,如`square`进行向量化操作,`dot`做矩阵乘法。结合两者优化数据预处理,提升模型训练效率和效果。
|
14天前
|
数据采集 数据挖掘 数据处理
探索数据科学前沿:Pandas与NumPy库的高级特性与应用实例
【7月更文挑战第13天】Pandas与NumPy是Python数据分析的基石。Pandas的DataFrame和Series提供高效数据处理,如缺失值填充(fillna(), dropna())、重复值去除(drop_duplicates())和数据合并(pd.merge(), pd.concat())。数据聚合与透视分析(groupby(), pivot_table())简化复杂任务。NumPy则擅长多维数组运算,支持矩阵乘法(np.dot())、行列式计算(np.linalg.det()),并利用广播机制进行灵活的数组运算。掌握这些高级特性能增强数据科学家的分析效能。
24 2
|
13天前
|
数据采集 机器学习/深度学习 数据处理
从基础到卓越:Pandas与NumPy在复杂数据处理中的实战策略
【7月更文挑战第14天】Pandas与NumPy在数据科学中的核心应用:**加载数据(如`read_csv`)、探索(`head()`, `info()`, `describe()`)、数据清洗(`fillna`, `dropna`, `replace`, `apply`)、数值计算(借助NumPy的`ndarray`)、分组聚合(`groupby`与聚合函数)、窗口函数(如`rolling`)和数据筛选排序(布尔索引,`query`,`sort_values`)。通过这些工具,实现从数据预处理到复杂分析的高效处理。
16 0
|
13天前
|
数据采集 数据挖掘 数据处理
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
【7月更文挑战第14天】Python的Pandas和NumPy库是数据分析的核心工具。Pandas以其高效的数据处理能力,如分组操作和自定义函数应用,简化了数据清洗和转换。NumPy则以其多维数组和广播机制实现快速数值计算。两者协同工作,如在DataFrame与NumPy数组间转换进行预处理,提升了数据分析的效率和精度。掌握这两者的高级功能是提升数据科学技能的关键。**
15 0
|
13天前
|
数据采集 机器学习/深度学习 数据处理
数据科学家的秘密武器:Pandas与NumPy高级应用实战指南
【7月更文挑战第14天】Pandas与NumPy在数据科学中扮演关键角色。Pandas的DataFrame和Series提供高效数据处理,如数据清洗、转换,而NumPy则以ndarray为基础进行数值计算和矩阵操作。两者结合,从数据预处理到数值分析,形成强大工具组合。示例展示了填充缺失值、类型转换、矩阵乘法、标准化等操作,体现其在实际项目中的协同效用。掌握这两者,能提升数据科学家的效能和分析深度。**
19 0
|
14天前
|
存储 数据可视化 数据处理
`geopandas`是一个开源项目,它为Python提供了地理空间数据处理的能力。它基于`pandas`库,并扩展了其对地理空间数据(如点、线、多边形等)的支持。`GeoDataFrame`是`geopandas`中的核心数据结构,它类似于`pandas`的`DataFrame`,但包含了一个额外的地理列(通常是`geometry`列),用于存储地理空间数据。
`geopandas`是一个开源项目,它为Python提供了地理空间数据处理的能力。它基于`pandas`库,并扩展了其对地理空间数据(如点、线、多边形等)的支持。`GeoDataFrame`是`geopandas`中的核心数据结构,它类似于`pandas`的`DataFrame`,但包含了一个额外的地理列(通常是`geometry`列),用于存储地理空间数据。
|
14天前
|
数据处理 Python
数据科学进阶之路:Pandas与NumPy高级操作详解与实战演练
【7月更文挑战第13天】探索数据科学:Pandas与NumPy提升效率的高级技巧** - Pandas的`query`, `loc`和`groupby`用于复杂筛选和分组聚合,例如筛选2023年销售额超1000的记录并按类别计总销售额。 - NumPy的广播和向量化运算加速大规模数据处理,如快速计算两个大数组的元素级乘积。 - Pandas DataFrame基于NumPy,二者协同加速数据处理,如将DataFrame列转换为NumPy数组进行标准化再回写,避免链式赋值。 掌握这些高级操作,实现数据科学项目的效率飞跃。
25 0