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

机器学习库介绍(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 + b

print(add_result)

# 数组相乘

mul_result = a * b

print(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:强大的数据处理与分析库

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

创建数据结构

import pandas as pd

# 创建Series

data = [10, 20, 30, 40]

index = ['a', 'b', 'c', 'd']

series = pd.Series(data, index=index)

print(series)

# 创建DataFrame

data = {

   '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 plt

x = [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 库的详细介绍及代码示例,相信大家对这三个机器学习常用库有了更深入的理解。在实际项目中,灵活运用这些库能够大幅提升数据处理、分析与可视化的效率,为机器学习模型的构建与优化奠定坚实基础。

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

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

相关文章

Redis——用户签到BitMap,UV统计

目录 BitMap 使用场景 1. 用户签到系统 2. 用户行为标记 3. 布隆过滤器(Bloom Filter) BitMap介绍 Redis中的使用 Redis功能示例 添加: 获取: 批量获取: java中实现 统计本月连续签到次数 UV统计 UV 统计…

【数据结构】(12) 反射、枚举、lambda 表达式

一、反射 1、反射机制定义及作用 反射是允许程序在运行时检查和操作类、方法、属性等的机制,能够动态地获取信息、调用方法等。换句话说,在编写程序时,不需要知道要操作的类的具体信息,而是在程序运行时获取和使用。 2、反射机制…

【初探数据结构】时间复杂度和空间复杂度

💬 欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习! 👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对数据结构感…

基于 MySQL 递归 CTE 实现表,父级id与子级id拼接

1、函数 xr_test.tb_content替换成自己的表 CREATE DEFINERroot% FUNCTION get_related_ids(start_id BIGINT) RETURNS varchar(1000) CHARSET utf8mb4 COLLATE utf8mb4_general_ciDETERMINISTIC BEGINDECLARE result_ids VARCHAR(1000);-- 使用递归 CTE 查找所有相关的 idWI…

Redission可重试、超时续约的实现原理(源码分析)

Redission遇到其他进程已经占用资源的时候会在指定时间waitTime内进行重试。实现过程如下: 执行获取锁的lua脚本时,会返回一个值, 如果获取锁成功,返回nil,也就是java里的null 如果获取锁失败,用语句“PT…

ue----git局域网内部署裸仓库,别的机器进行访问

最近由于经常迁移项目到另一台机器上进行部署更新一点就要整个迁移 弄得麻烦了 就在网上学了一下这个方式 首先我们在想要建立裸仓库的电脑上找到一个文件夹放置我们的裸仓库 在此点击鼠标右键选择 open git bash here 输入命令 创裸仓库 git init --bare gitTestName.git…

输入搜索、分组展示选项、下拉选取,el-select 实现:即输入关键字检索,返回分组选项,选取跳转到相应内容页 —— VUE 项目-全局模糊检索

后端数据代码写于下一篇:输入搜索、分组展示选项、下拉选取,全局跳转页,el-select 实现 —— 后端数据处理代码,抛砖引玉展思路 【效果图】:分组展示选项 >【提供界面操作体验】 【录制效果视频展示】&#xff1a…

【UCB CS 61B SP24】Lecture 11 - Inheritance 4: Iterators, Object Methods学习笔记

本文内容为集合(Set)的介绍与使用,并通过数组手动实现集合,接着介绍了迭代器,使用迭代器我们能够更方便地遍历集合中的元素。 1. Set 1.1 Set介绍与Java实现类的使用 集合(Set)是一种常见的数…

玩机日记 12 fnOS使用lucky反代https转发到外网提供服务

目录 1、安装lucky 2、更新lucky 3、上传ssl证书 4、设置安全入口,替换fnOS的应用url 5、添加https反代 这一篇主要是解决一下飞牛反代https的问题。可以先看玩机日记 12.5 在PVE Windows11上部署本地AI模型,使用群晖反代https转发到外网提供服务&a…

神经网络八股(3)

1.什么是梯度消失和梯度爆炸 梯度消失是指梯度在反向传播的过程中逐渐变小,最终趋近于零,这会导致靠前层的神经网络层权重参数更新缓慢,甚至不更新,学习不到有用的特征。 梯度爆炸是指梯度在方向传播过程中逐渐变大,…

【ARM】MDK如何生成指定大小的bin文件,并指定空区域的填充数据

1、 文档目标 解决MDK如何生成指定大小的bin文件,并指定空区域的填充数据 2、 问题场景 客户有这样的需求,客户本身的工程编译生成bin文件后,bin文件大小为200k。整体芯片的内存有512k。客户想要最终生成的bin文件可以达到512k的一个情况&a…

Linux-----进程间通信

一、按通信范围分类 同一主机进程通信 传统IPC方式: 管道(无名管道、有名管道)信号(Signal) System V IPC: 共享内存(效率最高)消息队列信号量 POSIX IPC(较新标准&#…

Part 3 第十二章 单元测试 Unit Testing

概述 第十二章围绕单元测试展开,阐述了单元测试的实践与重要性,通过对比其他测试类型,突出其特点,还介绍了单元测试的最佳实践、避免的反模式以及与测试替身相关的内容,为编写高质量单元测试提供指导。 章节概要 1…

Windows10配置C++版本的Kafka,并进行发布和订阅测试

配置的环境为:Release x64下的环境 完整项目:https://gitee.com/jiajingong/kafka-publisher 1、首先下载相应的库文件(.lib,.dll) 参考链接: GitHub - eStreamSoftware/delphi-kafka GitHub - cloade…

Deepseek引爆AI热潮 防静电地板如何守护数据中心安全

近期,Deepseek的爆火将人工智能推向了新的高度,也引发了人们对AI背后基础设施的关注。作为AI运行的“大脑”,数据中心承载着海量数据的存储、处理和传输,其安全稳定运行至关重要。而在这背后,防静电地板扮演着不可或缺…

Spring框架基本使用(Maven详解)

前言: 当我们创建项目的时候,第一步少不了搭建环境的相关准备工作。 那么如果想让我们的项目做起来方便快捷,应该引入更多的管理工具,帮我们管理。 Maven的出现帮我们大大解决了管理的难题!! Maven&#xf…

QSplashScreen --软件启动前的交互

目录 QSplashScreen 类介绍 使用方式 项目中使用 THPrinterSplashScreen头文件 THPrinterSplashScreen实现代码 使用代码 使用效果 QSplashScreen 类介绍 QSplashScreen 是 Qt 中的一个类,用于显示启动画面。它通常在应用程序启动时显示,以向用户显…

【Vscode 使用】集合1

一、使用make工具管理工程 windows下,下载mingw64,配置好mingw64\bin 为 Win10系统全局变量后。 在mingw64/bin目录下找到mingw32-make.exe工具。复制一份改名为:make.exe,没错,就是那么简单,mingw64自带m…

PHP-create_function

[题目信息]: 题目名称题目难度PHP-create_function2 [题目考点]: create_function ( string args , string args , string code )[Flag格式]: SangFor{wWx5dEGHHhDUwmST4bpXwfjSzq43I6cz}[环境部署]: docker-compose.yml文件或者docker …

golang内存泄漏

golang也用了好几年了,趁着有空 整理归纳下,以后忘了好看下 一般认为 Go 10次内存泄漏,8次goroutine泄漏,1次是真正内存泄漏,还有1次是cgo导致的内存泄漏 1:环境 go1.20 win10 2:goroutine泄漏 单个Goroutine占用内存&…