Python 数据挖掘模块

        在数据挖掘的过程中,合适的工具至关重要,而 Python 凭借其丰富的模块,成为了数据挖掘领域的热门选择。本次课程我们主要介绍四个核心模块:Numpy、Pandas、Matplotlib 和 Scikit-learn。

一、Numpy

首先,我们来看 Numpy。Numpy 是 Numerical Python 的简称,它是高性能计算和数据分析的基础包,在数据处理中有着举足轻重的地位。

Numpy 主要提供了不少关键功能:它有 Ndarray 数据对象,这是一种多维数组对象,专门用于存储和处理数据;能提供对数组数据进行快速运算的数学函数;具备读写磁盘数据的工具;还有常用的线性代数、傅里叶变换和随机数操作相关功能;能调用 C/C++ 和 Fortran 代码;以及能无缝、快速地与各种数据库集成。

1. Ndarray 数组的创建

Ndarray 是一个快速、灵活的数据容器,由同质元素组成,也就是几乎所有元素的类型和大小都相同。它有多种常用的创建方法:

  1. array () 函数:可以将 Python 的列表、元组或者其他序列类型数据转化为 Ndarray 数组。比如import numpy as np; a = np.array([1,2,3,4,5], dtype = np.int64); print(a),这样就创建了一个整数类型的数组。
  2. arange () 函数:用于创建等差数组,语法是arange([start,] stop [,step], dtype=None),它在区间 [start, stop) 上以 start 为起点,step 为步长构建数组。
  3. linspace () 函数:也用于创建等差数组,语法为linspace(start, stop, num=50, endpoint=True, dtype=None),能将区间 [start, stop] 等分为 num 个元素的数组,endpoint 参数控制是否包含 stop。
  4. ones ()、zeros () 以及相关函数:ones () 生成全 1 数组,zeros () 生成全 0 数组,参数是指示数组形状的元组;zeros_like () 和 ones_like () 则以现有数组为参数,生成相应的全 0 或全 1 数组。
  5. 随机生成函数:Numpy 的 random 模块有多种构造函数,rand () 生成 [0,1) 上均匀分布的随机数组,randn () 生成符合标准正态分布的随机数组,randint () 生成 [low,high) 上均匀分布的整数数组,它们的形状由相应参数给定。

2. Ndarray 数组的属性

多维数组 Ndarray 有 3 个重要属性:

  1. dtype 属性:表示数组的数据类型,创建时可通过 dtype 参数指定,也能用 astype () 函数转化类型。比如a = np.ones((2,3), dtype = np.float32)生成 2x3 的 float32 型数组,之后a = a.astype(np.int32)可将其转为整型数组。
  2. ndim 属性:用来查看数组的维数,也就是有多少个维度。
  3. shape 属性:能获得数组的形状,即每个维度的具体大小。

3. 索引和切片

Numpy 可以通过下标索引和切片来获取数组中的数据:

  1. 普通索引:将每个维度的索引值单独放在中括号里,拼接多个维度的索引值来获得某一元素。
  2. 切片:操作方式和 Python 列表的切片相似,用 “[]” 指定下标。每个维度上用冒号分割起始位置、截止位置(不包含该位置)与步长,逗号区分不同维度,省略号 “…” 表示遍历剩余所有维度。

4. 排序

Numpy 提供 sort () 函数实现数组排序,还能用 axis 参数指定在某个维度上排序。调用方式有两种:

  1. np.sort(Ndarray数组对象):返回排序好的新数组,不修改原数组。
  2. Ndarray数组对象.sort():直接在原数组上重新排序。

5. Numpy 的数组运算

数组运算包括两种情况:

  1. 数组与数值的算术运算:支持加、减、乘、除、求余、乘方等。
  2. 数组与数组的算术运算:若形状相同,对应位置元素进行运算;若形状不同,会利用 Numpy 的 “广播” 特性计算。

二、Pandas

接下来是 Pandas,它基于 Numpy 构建,是处理表格和混杂数据的高效模块,在数据分析和处理中非常重要,和更适合处理统一数值数据的 Numpy 形成互补。安装 Pandas 可以在 Anaconda 命令行终端用pip install pandas或者conda install pandas

1. Pandas 的数据结构

Pandas 有两种重要的数据结构:

  1. Series:由一组数据和对应的索引值组成,创建时可向 pd.Series 传递 Python 列表、字典或者 Numpy 一维数组。
  2. DataFrame:由多个列组成,每列数据类型可以不同,创建时典型方法是向 pd.DataFrame () 传入二维列表、字典或者二维数组。

2. 查看和获取数据

  1. 数据查看和设置:创建 DataFrame 后,可用一些内置函数和属性观察设置基本信息。比如用 df.shape [0] 或 len (df) 获取行数,df.shape [1] 获取列数,df.columns 或 df.index 获取列名或行名,df.info() 查看概要信息,df.head (n) 查看前 n 行,df.tail (n) 查看最后 n 行等,还能重新定义或更改列名。
  2. 数据获取:支持多种索引和切片方式,通过列索引获得一列或多列;用 loc [] 或 iloc [] 函数获取指定行、列索引位置的数据;使用条件索引获得满足条件的数据或切片。

3. Pandas 的算术运算

Pandas 支持将 Series 或 DataFrame 当作整体进行算术运算,有两种方法:

  1. 直接用 “+”“-”“*”“/” 等算术运算符。
  2. 使用 add ()、sub ()、mul ()、div ()、mod () 等函数。运算时,只有对应索引(行索引和列索引)相同的数据才能运算,不同索引的数据默认以 NaN 出现在结果中。

4. Pandas 的统计汇总函数

Pandas 提供了丰富的统计汇总函数,能对数据进行各种统计分析,帮助我们了解数据的分布和特征。

5. Pandas 读写文件

  1. 读 CSV 文本文件:用 read_csv () 函数,参数有文件路径、分隔符、定界符、列名称所在行、编码方式等,读入后数据存入 DataFrame 对象。
  2. 写 CSV 文本文件:用 to_csv () 函数,参数包括保存路径、分隔符、空值存储形式、是否存储行索引、是否存储列名、编码方式等。
  3. 读 Excel 文件:用 read_excel () 函数,参数有文件路径、表格名称、列名所在行、用作行索引的列等。
  4. 写 Excel 文件:用 to_excel () 函数,参数包括保存路径或 Excel_writer 对象、表格名称、空值存储形式、是否存储行索引等。

三、Matplotlib

然后是 Matplotlib,它是 Python 的基础绘图模块,能绘制多种样式的图形,如线图、直方图、饼图、散点图、三维图形等。安装可以用pip install matplotlib或者conda install matplotlib

1. Matplotlib 绘图元素

在 Matplotlib 中,整个图形是一个画布(Figure)对象,绘图就是在画布上添加各种基本元素并设置参数控制外形。绘图元素包括坐标轴区域(Axes)、标题(Title)、图例(Legend)、坐标轴(Axis)、标注(Annotate)、网格线(Grid)、刻度(Ticks)、标签(Label)等。

设置坐标轴参数有相应的函数,比如 plt.xlim () 和 plt.ylim () 设置横纵坐标取值范围,plt.xticks () 和 plt.yticks () 设置坐标轴刻度,plt.xlabel () 和 plt.ylabel () 设置横纵轴标签。

Matplotlib 中图形有不少参数,像 linewidth 控制线条宽度,取值在 0-10 之间,默认为 1.5;linestyle 控制线条样式,有 “-”(实线)、“--”(长虚线)、“-.”(点线)、“:”(短虚线)四种;marker 控制线条上点的形状,有 “o”“D”“h” 等 20 种,默认为 None;markersize 控制点的大小,在 0-10 之间,默认为 1。

2. 常用 Matplotlib 图形的绘制

  1. 折线图:用 plot () 函数绘制,语法是plot(x, y, colorlinewidth, linestyle, marker, markersize),参数包括点的 X 和 Y 坐标、折线颜色、线条宽度、样式、标记点类型和大小。比如plt.plot(x, y, color ='r', linewidth = 1.5, linestyle= '--', marker ='o', markersize = 6)就绘制了一条红色、线宽 1.5、长虚线、圆圈标记点、大小为 6 的折线。
  2. 散点图:用 scatter () 函数绘制,能将数据集中的每个点绘制在二维平面上,用于观察数据分布和变量相关性,语法是scatter(x, y, s, c, marker, alpha),参数有 X 和 Y 坐标、散点大小、颜色、样式、透明度。

四、Scikit-learn

最后是 Scikit-learn,它是 Python 中构建数据挖掘模型的强大模块,涵盖了几乎所有主流数据挖掘算法,且有统一的调用接口。

Scikit-learn 提供了多个功能模块,覆盖数据挖掘任务主要阶段:

  1. 数据集模块
  2. 数据预处理模块
  3. 模型训练模块
  4. 模型评估模块
  5. 其他功能模块

以上就是我们今天学习的四个 Python 数据挖掘核心模块的主要内容,它们在数据挖掘的不同环节发挥着重要作用,掌握好这些模块,能为我们进行数据挖掘实战打下坚实的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值