机器学习基础入门——机器学习库介绍(NumPy、pandas、Matplotlib)

ops/2025/2/28 23:59:47/

pandasMatplotlib_0">机器学习库介绍(NumPy、pandas、Matplotlib)

在 Python 机器学习的领域中,NumPy、pandas 和 Matplotlib 是三个不可或缺的基础库。它们分别在数值计算、数据处理与分析以及数据可视化方面发挥着关键作用,极大地提升了开发效率与数据洞察能力。接下来,我们将通过丰富的代码示例详细了解这三个库。

NumPy:高效的数值计算库

NumPy 提供了多维数组对象ndarray,以及大量用于数组操作的函数,使得数值计算变得高效且便捷。

创建数组

import numpy as np# 创建一维数组arr1 = np.array([1, 2, 3, 4])print(arr1)# 创建二维数组arr2 = np.array([[1, 2, 3], [4, 5, 6]])print(arr2)# 创建全零数组zeros_arr = np.zeros((3, 4))print(zeros_arr)# 创建全一数组ones_arr = np.ones((2, 3))print(ones_arr)# 创建指定范围的数组range_arr = np.arange(1, 10, 2)print(range_arr)

*示意不同方式创建的 NumPy 数组结构*

数组运算

a = np.array([1, 2, 3])b = np.array([4, 5, 6])# 数组相加add_result = a + bprint(add_result)# 数组相乘mul_result = a * bprint(mul_result)# 数组点积dot_result = np.dot(a, b)print(dot_result)

在这里插入图片描述

数组索引与切片

arr = np.array([10, 20, 30, 40, 50])# 访问单个元素print(arr[2])# 切片操作print(arr[1:4])# 二维数组索引与切片two_d_arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])print(two_d_arr[1, 2])print(two_d_arr[:, 1])

在这里插入图片描述

pandas_111">pandas:强大的数据处理与分析库

pandas 的核心数据结构是Series(一维带标签数组)和DataFrame(二维表格型数据结构),提供了丰富的数据处理与分析方法。

创建数据结构

import pandas as pd# 创建Seriesdata = [10, 20, 30, 40]index = ['a', 'b', 'c', 'd']series = pd.Series(data, index=index)print(series)# 创建DataFramedata = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['New York', 'London', 'Paris']}df = pd.DataFrame(data)print(df)

在这里插入图片描述

展示 pandas 中 Series 和 DataFrame 的数据结构样式

数据读取与写入

# 从CSV文件读取数据df = pd.read_csv('data.csv')print(df.head())# 将数据写入CSV文件df.to_csv('new_data.csv', index=False)

数据清洗与处理

# 处理缺失值df = pd.DataFrame({'A': [1, 2, None, 4],'B': [5, None, 7, 8]})df = df.dropna()  # 删除包含缺失值的行print(df)# 处理重复值df = pd.DataFrame({'A': [1, 2, 2, 3],'B': [4, 5, 5, 6]})df = df.drop_duplicates()print(df)

在这里插入图片描述

数据筛选与统计

df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['New York', 'London', 'Paris']})# 筛选年龄大于30的行filtered_df = df[df['Age'] > 30]print(filtered_df)# 统计各列的描述性统计信息stats = df.describe()print(stats)

在这里插入图片描述

Matplotlib:数据可视化利器

Matplotlib 可以将数据以直观的图表形式展示出来,帮助我们更好地理解数据特征与趋势。

简单绘图

import matplotlib.pyplot as pltx = [1, 2, 3, 4]y = [10, 12, 15, 13]plt.plot(x, y)plt.xlabel('X-axis')plt.ylabel('Y-axis')plt.title('Simple Line Plot')plt.show()

在这里插入图片描述

Matplotlib 绘制的简单折线图示例

绘制多种图表

# 柱状图labels = ['A', 'B', 'C', 'D']values = [20, 35, 15, 30]plt.bar(labels, values)plt.show()

在这里插入图片描述

Matplotlib 绘制的柱状图示例

# 散点图x = np.random.randn(100)y = np.random.randn(100)plt.scatter(x, y)plt.show()

在这里插入图片描述

Matplotlib 绘制的散点图示例

# 饼图sizes = [30, 20, 15, 35]labels = ['Apple', 'Banana', 'Orange', 'Grapes']plt.pie(sizes, labels=labels, autopct='%1.1f%%')plt.show()

在这里插入图片描述

Matplotlib 绘制的饼图示例

通过上述对 NumPy、pandas 和 Matplotlib 库的详细介绍及代码示例,相信大家对这三个机器学习常用库有了更深入的理解。在实际项目中,灵活运用这些库能够大幅提升数据处理、分析与可视化的效率,为机器学习模型的构建与优化奠定坚实基础。


http://www.ppmy.cn/ops/162085.html

相关文章

flutter 局部刷新控件Selector源码实现原理

Flutter 中的 Selector 组件是 provider 包提供的一个优化工具,用于在状态管理中仅选择所需数据片段,避免不必要的 Widget 重建。其实现原理基于以下几个关键点: 1. 核心设计目标 选择性重建:仅当特定数据变化时触发 Widget 重建&…

深入探索C#中的async和await:原理、使用方法与最佳实践

在现代软件开发中,异步编程(Asynchronous Programming)已经成为一个至关重要的技能,特别是在高性能、响应迅速的应用程序开发中。C#作为一种成熟的编程语言,近年来引入了async和await关键词来简化异步编程的写法&#…

DavGo简单部署WebDAV服务

目录 功能特性使用方法1. 下载2. 配置 config.yaml3. 运行服务器4. 可以用来挂载WebDav的软件 反向代理 DavGo 是一个用 Go 语言实现的轻量级 WebDAV 服务器,支持动态配置多个 WebDAV 服务实例,每个实例可以独立设置根目录、认证信息和读写模式。 功能特…

Nginx 配置前端后端服务

在配置Nginx以支持前端和后端服务时,需要了解Nginx的基本配置语法和结构,并依次设置Nginx作为前端静态资源服务器和反向代理服务器以连接后端应用。以下是详细的配置步骤: 一、Nginx基本配置语法和结构 Nginx的配置文件通常位于/etc/nginx/…

【python随手记】——读取文本文件内容转换为json格式

文章目录 前言一、TXT文件转换为JSON数组1.txt文件内容2.python代码3.输出结果 二、TXT文件转换为JSON对象1.txt文件2.python代码3.输出结果 前言 场景:用于读取包含空格分隔数据的TXT文件,并将其转换为结构化JSON文件 一、TXT文件转换为JSON数组 1.tx…

一、图像图像的基本概念

文章目录 一、分辨率概念二、图形图像的区别三、位图和矢量图的区别 一、分辨率概念 图形显示计数中的分辨率概念有三种,即屏幕分辨率、显示分辨率和显卡分辨率。它们既有区别又有着密切的联系,对图形显示的处理有极大的影响。 1.屏幕分辨率 显示器分辨…

释放 Cursor 的全部潜能:快速生成智能 Cursor Rules

释放 Cursor 的全部潜能:使用 PromptCoder 从 package.json 快速生成智能 Cursor Rules 我们将深入探讨如何利用您项目中的 package.json 文件,轻松生成 Cursor Rules,并通过 PromptCoder 这个强大的工具,快速创建高质量的 curso…

再论Spring MVC中Filter和HandlerInterceptor的优先级

在Spring MVC中,Filter和HandlerInterceptor的执行顺序及优先级如下: 1. 执行顺序与优先级 Filter(Servlet规范)的优先级高于 HandlerInterceptor(Spring MVC框架)。 请求处理流程: Filter链&a…