【二】数据挖掘的工具--Python储备知识

1.Python基础语法

数据挖掘需要用到的编程语言——Python,这里介绍了最最基础的一点内容,包括其数据结构和基本语法。如果你对 Python有一定了解,那么请直接跳过这部分内容。

注意事项

Python 3 相比 2 有了很大的调整和改进,对中文的支持也更加友好。所以推荐使用Python3的语法。

  1. 标识符

标识符就是定义的名称,包括类名、变量名等。在 Python 中,标识符的大小写是敏感的,且第一个字符必须是字母表中的字母或“_”。在 Python 3 中,甚至中文也可被用作变量名。当然,Python 有一些自留标识符,比如 def、true、false 等,我们不能再使用这些作为标识符。

2.注释

注释是为了方便阅读代码写的内容,这些内容将不会被解释器解释执行。Python 中有两种注释方法:
第一种是注释单行,可以使用“#”,出现在“#”后面的该行内容将变成注释;
第二种是注释一段,可以使用 ‘’’ 或者 “”" 来处理多行注释。

  1. 使用缩进来标记代码块

在很多编程语言中,比如 C++ 和 Java,都是使用大括号 {} 来对代码段进行分割的,但是在 Python 中不需要,而是使用缩进来对代码段进行控制。所以在编写 Python 代码的时候,一定要非常注意缩进规范。

如果你使用 IDE(Integrated Development Environment ,集成开发环境)来编辑代码,一般都会有缩进提醒,但使用文本编辑器就可能会经常遇到缩进的问题了,甚至会报错。

如果一行代码实在太长,你需要把它分割成多行来写,可以使用“\”进行连接;如果是在括号里的内容,那就不需要使用“\”,直接换行就行了。

  1. 导入其他模块

在 Python 的扩展中,有很多第三方编写的模块,并且我们在组织大型项目代码的时候,也会把代码分成好多的模块,这里就涉及导入或者说是引用的问题了。

这时候要用到两个命令 import 或者 from…import。import 的主要作用是导入整个模块,或者导入模块中的模块;而 from…import 是从某个模块中导入某个方法(函数),比如:
import tensorflow as tf : 导入 tensorflow 模块,并起一个新名字 tf,这主要是为了方便代码编写
from model import yolov3 : 从 model 模块导入 yolov3 方法
from math import * 或者 import math : 从 math 模块导入所有方法

数据类型

Python 支持的数据类型,如下表所示:
数据类型表
Python在声明变量时可以不声明它的类型,而是在赋值时才确定类型。需要注意的是,容器型变量(如列表、字典等)中,内部元素类型是任意的。

在数据挖掘当中,列表、集合和字典使用频繁,数据通常以向量的方式表示、存储在列表中。在此,简单对上述常用的三种数据进行说明。

  1. 列表(list)

列表可以理解为是一个有序可重复的数组,主要用于按顺序存放数据。

列表赋值语句:list=[‘one’,‘two’,3,4,5]
通过该语句生成了一个列表,即 list,里面有 5 个元素,但它们的类型不一样,前 2 个是字符串,后 3 个是数字。

列表中的元素是有序的,每个元素都有一个位置标记,并且元素可以重复。用列表的位置下标来获取对应的元素并输出。注意,在计算机语言中,一般位置标识都是从 0 开始的。
print(list[0]) #输出 one
print(list[4]) #输出 5

列表的基本操作主要有添加、删除、修改等功能,同时 Python 还提供了一系列的扩展功能,如查询列表长度、列表运算,等等。

  • 添加元素
    list.append(x) #向列表中加入一个新的元素 x

  • 删除元素
    del list[2] #删除了位于位置 2 的元素。注意,此时后面的元素会补充进来,所以位置 2 上仍然是有元素的

  • 修改元素
    list[2] = ‘three’ #修改位于位置 2 的列表元素

  • 查询列表长度
    len(list) #返回列表的长度

  • 列表运算
    list1+list2 #列表相加,返回一个新的列表,里面按顺序有 list1 和 list2 的所有元素

  • 判断某一元素是否在列表中
    x in list #判断 list 中是否有 x 这个元素

  1. 集合(set)

集合是一个无序的不重复序列,可以使用大括号 { } 或者 set() 函数创建集合。需要注意的是,创建一个空集合必须用 set() 而不能用 { },因为** { } 是用来创建一个空字典的**。

  • 新建一个空集合
    abc=set() #这时候我们就创建了一个空集合

  • 添加元素
    abc.add(x) #向 abc 中加入元素 x

  • 删除元素
    abc.remove(x) #从 abc 中删除元素 x

  1. 字典(dict)

字典中存放的每一个元素实际上是一个键值对(key:value),其中 key 是不能重复的,存入相同的 key,它的 value 会被替换成最新的。dict={} 代表使用大括号声明一个空字典。字典中的元素可以是任意类型,比如数值、字符串、列表,甚至是字典。

  • 创建字典
    dict={‘a’:1,‘b’:2,5:4}

  • 向字典中添加键值对
    dict[‘c’]=3

  • 从字典中删除键值对
    del dict[‘a’] #只需要标记 key 就删除了键值对

常用语句

Python有非常多语句,在此只介绍三种最最基础的条件语句、循环语句和pass语句。

  1. 条件语句

条件判断是最常用到的方法,可以用来各种情况的判定,从而影响语句的执行,使用方法如下:

if 条件:
执行
elif 条件:
执行
else:
执行

#具体的例子,找到 a、b、c 中最大的数,其中 and 是逻辑运算符“且”的意思
if a>b and a>c:
print(a)
elif b>a and b>c:
print(b)
else:
print©

  1. 循环语句

循环语句相关的主要有 while 语句、for 语句、continue 语句、break 语句。

  • while 循环
    #a>b 循环输出a,b加1,直到 a<=b 循环终止
    while a>b:
    print(a)
    b=b+1

  • for循环
    #i 在区间 0-100 循环输出 i,即从 0 开始到 100 循环终止
    for i in range(0,101):
    print(i)

  • continue跳过
    #i 在区间 0-100 循环输出 i,但是如果 i 小于 50 就跳过本次,下面的 print 语句得不到执行,一直循环到 i>=50 才会执行 print
    for i in range(0,101):
    if i < 50:
    continue
    print(i)

  • break终止循环
    #i 在区间 0-100 循环输出 i,当 i>50 的时候遇到 break,该循环被终止了,所以这个循环只能输出前 50 次
    for i in range(0,101):
    print(i)
    if i > 50:
    break

  1. pass 语句

在 Python 中有一个特别的语句,那就是** pass 语句,该语句代表什么都没有**,主要用于一些特殊的位置。在实际编写代码的时候,有些位置你可能想要写一些功能,但是还没有想好要怎么写,比如你定义了一个函数,但是函数的具体内容还没确定,此时就可以预留出一些位置暂时写上 pass 语句,从而不会影响代码的运行。

比如我们想写一个代码,当 i<50 的时候什么都不做,就可以这么写:
for i in range(0,100):
print(i)
if i < 50:
pass
else
print(i)

Python编辑器

  • PyCharm:由大名鼎鼎的 JetBrains 开发的,它是一款 Python 专用 IDE,它的功能十分强大,开发版是免费的,通常可以满足一般开发者的需求。
  • Spyder:在Anaconda中集成了这个 IDE,而且是免费的。功能没有PyCharm强大,但在测试环境下对于日常实验够用了,目前我还没有使用过。
  • VIM :在 Linux 系统上,尤其是服务器上,最常用的文本编辑软件。
  • SublimeText 是一款用于代码、标记和散文的精致文本编辑器,它与 VIM 一样都属于文本编辑器,界面简洁清爽,反应十分迅速,但其优势是扩展了代码开发的功能,支持代码高亮、语法提示等功能。
  • Jupyter Notebook 是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。它的好处就是轻量,而且对于数据的可视化非常友好,对于一些小型实验,或者数据分析,使用Jupyter Notebook 非常方便。在 Anaconda 里面也集成了 Jupyter Notebook。

2.扩展包与Python环境

标准库

Python 的标准库是其核心的扩展,其中包括了操作系统接口、文件操作、输入输出流、文本处理等功能。
首先,在写代码的时候如果忘记某个功能的名字或者不知道有哪些功能,就可以通过以下两个操作方法查看。

  • dir() #查看模块中所包含的工具
  • help() #展示模块中所有方法的说明

接下来,介绍数据挖掘中常用的 6 个模块及其应用场景,详见表格【来源:拉钩教育】
常用标准库模块

第三方库

Python除了拥有广泛的标准库,还拥有庞大的第三方库,大大简化了开发过程。在此列出了在数据挖掘、机器学习项目中一些常用的项目库,若想深入学习,可以先从官网入手了解。【哭了,,什么时候学到头****】

  • 基础模块
    推荐 4 款常用且功能强大的科学运算基础工具包,请见下表:[来源:拉钩教育]
    来源:拉钩教育
  • 机器学习
    推荐4款常用的库,包含了基础数据挖掘、图像处理与自然语言处理常用算法。它们可以支撑日常工程中的常见算法处理方案,请见下表:[来源:拉钩教育]
    机器学习库
  • 深度学习平台
    这里介绍3个深度学习的平台。用任何一个框架都可以构建深度学习项目,在实际的应用中,根据自己的需要进行选择即可。请见下表:[来源:拉钩教育]
    来源:拉钩教育
  • 使用 pip 安装扩展包
    常用到的执行命令有:
    pip --version #查看 pip 是否已经存在
    pip install -U pip #升级pip到最新版
    pip install tensorflow #安装最新的 tensorflow 模块
    pip install tensorflow==1.14 #安装版本为 1.14 的 tensorflow 模块
    pip install tensorflow>=1.14 #安装 1.14 以上版本的 tensorflow 模块
    pip uninstall tensorflow # 用pip卸载某个模块
    pip search tensorflow #在 pip 库中搜索某个模块
    pip list #用 pip 显示已安装的包
    pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple #在安装某个模块时,如需临时切换镜像源
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple #用 pip 更新配置文件,修改默认源

Anaconda搭建环境

Anaconda 是包管理器,也是环境管理器,更是 Python 的编辑器。其致力于为用户提供最便捷的方式来使用 Python,进行数据科学计算和机器学习。该软件在安装、运行和升级等复杂的科学数据运算和机器学习环境方面变得极其简单。因为这是一个开源的工具,所以它拥有众多用户。许多数据科学运算工程都在使用 Anaconda。

当前流行的三个开源软件库 sklearn、TensorFlow 和 sciPy 都支持 Anaconda,不仅如此,还可以在网上找到该软件的 免费交流论坛,随时进行讨论学习。

  • 进入 Anaconda 的官网,根据自己的需求下载对应的 Anaconda 版本。傻瓜式安装,基本上一路“Next”和“I agree”就结束了。安装完成后,打开可以看到如下界面。
    Anaconda的界面图
  • 切换到 Environments 的 tab 页 创建环境
    Environments 的 tab 页图
    使用页面下方的 Create 按钮去创建一个新的环境【推荐,简单直接】,也可以用命令行的方式创建,具体操作如下:
    (1)在命令行中配置 Anaconda 环境;
    (2)在 Windows 中打开命令行工具 CMD;
    (3)使用 conda 创建一个环境。

这篇文章内容宽泛,介绍粗略,希望大家脑海中有个印象,遇到问题知道去哪里寻找解决问题的办法,就可以了。
如果你对里面的某些模块很有兴趣,可以去他们的首页上详细了解,也可以在网上找一些学习资料,也欢迎你在留言区写下你的问题,与我和其他读者一起讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值