简介 |
![]()
内容推荐 本书介绍了Python编程语言的主要规范、语法和结构等内容,强调Python在数据分析、数据处理和数据组织结构中的应用,以建立起运用Python语言进行数据处理的基础。本书以实现数据处理任务为索引,系统介绍进行计算机系统操作及文件读写、数据的可视化、科学计算、图像处理、数据生成和数据分析等任务的实现方法,涉及NumPy、pandas、matplotlib、sklearn、SciPy等扩展模块库的核心内容。涉及面广。 本书示例丰富,便于学习者学习和掌握,可作为高等院校计算机科学与技术、信息管理、数据分析等相关专业的教科书,也可作为信息分析人员的技术参考书籍。 目录 第1章 Python介绍及安装 1.1 Python发展史 1.2 Python的特性 1.3 安装Python开源软件 1.3.1 下载并安装 1.3.2 设置环境变量 1.3.3 运行Python 1.3.4 运行Python脚本文件 1.4 安装实用工具包 1.4.1 setuptools 1.4.2 easy_install 1.4.3 pip 1.5 安装基础模块库 1.6 安装集成开发环境 1.6.1 IDLE 1.6.2 Spyder 1.6.3 PyCharm 1.6.4 PythonWin 练习 参考文献 第2章 Python语言基础 2.1 Python语句书写 2.1.1 语句书写规则 2.1.2 语句书写格式 2.2 基本数据类型 2.2.1 数值类型 2.2.2 字符串类型 2.2.3 布尔类型 2.2.4 “空”类型 2.3 标识符与变量 2.3.1 标识符与变量的命名 2.3.2 变量的赋值及变量值传递 2.4 运算及运算符 2.4.1 算术运算符 2.4.2 赋值运算符 2.4.3 位运算符 2.4.4 比较运算符 2.4.5 逻辑运算符 2.4.6 字符串运算符 2.4.7 成员运算符 2.4.8 身份运算符 2.4.9 运算符的优先级 2.4.10 运算中数据类型的转换 Python与数据科学 目录 2.5 程序结构 2.5.1 选择结构 2.5.2 循环结构 2.5.3 异常处理结构try…except语句 2.6 面向对象 2.6.1 类的定义与使用 2.6.2 方法与属性 2.7 常用内置函数 2.7.1 数学运算 2.7.2 类型转换 2.7.3 序列操作 2.7.4 对象操作 2.7.5 反射操作 2.7.6 变量操作 2.7.7 交互操作 2.7.8 文件操作 2.7.9 编译执行 2.7.10 装饰器 2.8 函数 2.8.1 声明函数 2.8.2 变量作用域 2.8.3 递归函数 2.9 数据结构 2.9.1 字符串 2.9.2 列表 2.9.3 元组 2.9.4 集合 2.9.5 映射(字典) 2.9.6 数组 2.9.7 矩阵 2.9.8 Series 2.9.9 DataFrame 练习 参考文献 第3章 系统与文件操作 3.1 系统操作 3.1.1 获取操作系统环境变量 3.1.2 获取操作系统信息 3.2 文件系统操作 3.3 文本文件读写 3.3.1 标准I/O读写 3.3.2 结构化文件读写 3.4 CSV文件读写 3.4.1 csv模块库 3.4.2 pandas模块库 3.5 MS Word文档读写 3.5.1 创建Word文档 3.5.2 读取Word文档 3.6 MS Excel文档读写 3.6.1 pandas模块库 3.6.2 xlsxwriter模块库 3.6.3 xlwt模块库(创建文件) 3.6.4 xlrd模块库(读取文件) 3.6.5 OpenPyxl模块库 3.7 MS PPT文档读写 练习 参考文献 第4章 数据可视化 4.1 matplotlib模块库绘图 4.1.1 Figure 4.1.2 Axes 4.1.3 散点图 4.1.4 折线图 4.1.5 饼图 4.1.6 柱形图 4.1.7 箱线图 4.1.8 茎叶图 4.1.9 矩阵图 4.1.10 等高线图 4.1.11 三维图形 4.1.12 图形装饰 4.2 pyecharts模块库绘图 4.3 NetworkX绘图 4.4 绘制动态图 练习 参考文献 第5章 科学计算 5.1 数值计算 5.1.1 积分 5.1.2 卷积 5.2 线性代数 5.2.1 求逆矩阵 5.2.2 求矩阵积 5.2.3 点积 5.2.4 内积 5.2.5 外积 5.2.6 叉乘 5.2.7 计算行列式 5.2.8 计算特征值和特征向量 5.2.9 奇异值分解 5.2.10 最小二乘法 5.2.11 求解线性方程 5.3 规划问题求解 5.3.1 SciPy模块库求解 5.3.2 cvxpy模块库求解 5.4 非线性方程计算和求解 5.4.1 一元多次方程 5.4.2 非线性方程 5.5 信号处理 5.5.1 傅里叶变换 5.5.2 滤波 练习 参考文献 第6章 图像处理 6.1 SKImage模块库 6.1.1 载入内置图片 6.1.2 图像读入、显示和保存 6.1.3 图像数据类型及颜色空间转换 6.1.4 图像像素访问与裁剪 6.1.5 图像缩放 6.1.6 图像旋转 6.1.7 对比度与亮度调整 6.1.8 绘制色阶图 6.1.9 直方图均衡化 6.2 OpenCV模块库 6.2.1 图像读入、显示和保存 6.2.2 通道的拆分/合并处理 6.2.3 图像颜色空间转换 6.2.4 缩放、平移、旋转 6.2.5 仿射变换 6.2.6 图像滤波 6.2.7 图像添加边框 练习 参考文献 第7章 数据生成 7.1 数据生成和载入 7.1.1 生成数据序列 7.1.2 生成随机数据 7.1.3 载入sklearn实验数据集 7.2 数据库访问 7.2.1 访问MySQL数据库 7.2.2 访问SQL Server数据库 练习 参考文献 第8章 数据分析 8.1 统计分析 8.1.1 描述性统计 8.1.2 汇总统计 8.1.3 参数估计与假设检验 8.1. 序言 前言 社会进入信息时代以来,信息作为一个重要的生产 要素,与物质和能量并称推动社会和生产进步的三要素 ,并发挥着越来越关键的作用。随着社会信息化程度的 提高,数据的获取量和存储量也呈爆发式增长。社会对 数据应用的迫切要求,在互联网技术和信息传播技术快 速发展的加持下,使数据的特性发生了巨大的变化,向 着数量大(Volume)、种类多(Variety)、速度要求 高(Velocity)和价值密度低(Value)的方向发展。 面对日益庞大的数据资源,以及社会发展对数据资源的 依赖和推动,人们迫切需要强有力的手段、方法和工具 来“挖掘”数据中的有用信息,使数据资源的价值得以 充分地体现。事实上,社会各个行业、各个领域也越来 越依赖数据获得管理与决策上的支持,数据也在各行各 业逐渐发挥出越来越强劲的力量,整个社会对数据应用 的依赖也逐步加深,身不由己地进入了一个数据化的时 代。数据化时代的到来催生了一门新的学科——数据科 学,其根本目的是通过对数据处理、分析和应用的技术 及方法的研究,充分挖掘和利用数据中所蕴含的价值, 使其更好地为人类社会的发展和进步发挥作用。数据科 学理论在几百年的发展,尤其是近几十年来基于海量数 据的变革性发展的过程中,已经达到一个相对成熟的阶 段,在广泛的实践应用中也得到了检验和提升。数据科 学应用的工具、平台和系统,层出不穷,不断发展进步 。数据库技术、SQL、MATLAB、Simulink、SPSS和 FORTRAN等都是数据科学应用过程中涌现出来的佼佼者 。随着大规模的数据分析与处理任务的猛增,以及多种 数据处理与互联网相融合应用场景的产生和繁衍,如 Python和R等专于数据分析、数据可视化和数据处理等 的计算机语言和工具应运而生。其中Python语言作为开 源软件,可以通过模块库进行扩展,数据的表达和运算 处理与数学表达更为契合,与多种应用平台的完美对接 和融合等多种优点迅速吸引了数据分析人员的目光,使 用排名一直稳步上升,近几年来已经跃居前三名 (TIOBE)。如今,Python已成为数据分析和数据科学 的标准语言和标准平台之一。选择Python作为数据科学 相关问题的解决方案,是因为Python具有众多其他处理 工具无法比拟的优点。Python功能完善,在网络爬虫、 Web 站点开发、游戏开发、自动化运维等众多领域都有 很广泛的应用。Python具有强大的第三方库,生态环境 良好。Python与人工智能紧密相连,符合社会发展的方 向。总之,虽然Python在20世纪末才刚刚兴起,但其在 形成和发展过程中表现出了强大的生命力,它的重要性 和所能产生的效益为人们逐渐认识,彰显出广阔的应用 前景。关于Python完成数据科学应用的书籍有很多,绝 大多数在介绍如何使用Python进行数据分析时,是按照 扩展模块库,如NumPy、pandas、sklearn中的功能来 逐项介绍。而本书则是以完成计算机系统操作和文件读 写、数据的可视化、图像处理、科学计算和数据分析中 的各项任务为索引,介绍了NumPy、pandas、 matplotlib、sklearn、SciPy等扩展模块库中,完成 相应任务的实现方法,并给出了相应的示例。为了能够 充分学习和掌握书中实现算法及编程技术,读者应具备 上述领域基本的知识,并具有较为扎实的面向对象编程 的基础。本书适合作为高等院校数据科学与大数据技术 、信息与计算科学、信息管理与信息系统等专业学生的 数据分析和数据处理相关课程教材,或作为对相关内容 感兴趣的学习者的参考书。本书共分为8章。第1章简要 介绍了Python语言的来源和特点,以及安装Python语言 及开发环境的方法;第2章简要介绍Python语言的规范 、语法和语句结构,着重介绍数据的组织结构;第3章 介绍对计算机文件系统和环境的操作,以及主要类型的 文件的读写;第4章介绍使用matplotlib进行可视化的 方法;第5章介绍完成数值计算和信号处理等应用的方 法;第6章介绍进行图像读写显示和图像调整的方法; 第7章介绍产生数据和获取数据的方法;第8章介绍完成 统计分析、数据解析和回归分析等的方法。在本书的编 写过程中,作者力争内容完整、准确、易于理解,参考 了热心学者和爱好者在互联网上以各种形式贡献的大量 的资料,也参阅了相关书籍,在此,对相应的作者、学 者表示衷心感谢。本书内容涉及多学科、多门类的知识 ,编者水平和精力有限,难免有疏漏和错误之处。读者 在使用本书的过程中,如有宝贵的意见和建议,欢迎赐 教并表示感谢。 葛东旭2021年8月 导语 1.从实际教学中总结而来,从内容选取、引入和展开的编排上更为适合学习和理解; 2.图表、示例丰富,使内容更容易理解和掌握,学习过程更加生动; 3.合理配置Python基础与数据科学计算和分析处理内容的篇幅,方便读者学习、使用; 4.组织、列举多种数据科学范畴的处理方法和内容,便于读者采用多种方法完成数据分析和处理,并进行比较选择; 5.提供示例、实验代码和素材,便于完成实践,掌握知识和技能。 精彩页 第3 章系统与文件操作 Python语言可以结合丰富的模块库,完成对计算机系统、计算机文件系统的管理和控 制,也可以方便地对多种常见文档进行操作,大大提升办公自动化的效率。 3.1系统操作 3.1.1获取操作系统环境变量 调用os模块库的getenv()函数,可以获取系统中用户变量或系统变量的设置内容。其 原型为: os.getenv(key, default=None) 其中,参数key为用户配置和系统配置的环境变量项①名称。例如: >>> import os >>> os.getenv('HOMEPATH') '\\\\Users\\\\Administrator' >>> os.getenv('windir') 'C:\\\\windows' >>> os.getenv('pathext') '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC' 此外,也可以使用os.environ[]获取环境变量。例如: >>> os.environ['PATH'] 'C:\\\\Windows\\\\system32;C:\\\\Windows;C:\\\\Windows\\\\System32\\\\Wbem;C:\\\\Windows\\\\ System32\\\\WindowsPowerShell\\\\v1.0\\\\;C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\ ① 环境变量项,可以通过在桌面右击选择“属性”→“高级系统设置”→“高级”→“环境变量”,在“环境变量”对话框 中进行查看和设置。 第3 章系统与文件操作 Programs\\\\Python\\\\Python38;C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Programs \\\\Python\\\\Python38\\\\Scripts; C: \\\\Program Files (x86) \\\\Graphviz2.38\\\\bin; C: \\\\ Program Files\\\\WinRAR;C:\\\\Program Files (x86)\\\\Graphviz2.38\\\\bin' 3.1.2获取操作系统信息 调用platform 模块库所提供的各项函数,可以获得操作系统的信息。这些函数包括: platform()函数获取操作系统名称及版本号,version()函数获取操作系统版本号, architecture()函数获取操作系统的位数,machine()函数获取计算机类型,node()函数获取 计算机的网络名称,processor()函数获取处理器信息,system()函数获取操作系统信息, uname()函数获取综合信息。例如: >>> import platform >>> platform.platform() #获取操作系统名称及版本号 'Windows-7-6.1.7601-SP1' >>> platform.version() #获取操作系统版本号 '6.1.7601' >>> platform.architecture() #获取操作系统的位数 ('64bit', 'WindowsPE') >>> platform.machine() #获取计算机类型 'AMD64' >>> platform.node() #获取计算机的网络名称 'SC-202008041040' >>> platform.processor() #获取处理器信息 'Intel64 Family 6 Model 37 Stepping 5, GenuineIntel' >>> platform.system() #获取操作系统信息 'Windows' >>> platform.uname() uname_result(system='Windows', node='SC-202008041040', release='7', version= '6.1.7601', machine= 'AMD64', processor= 'Intel64 Family 6 Model 37 Stepping 5, GenuineIntel') 此外,sys模块库中也提供了多项能够报告操作系统和Python系统各种信息的属性, 可以在导入sys库后,使用dir(sys)来查看这些属性。 109 Python 与数据科学 3.2文件系统操作 os模块库中包含了一些对文件系统进行操作的函数,其中包括对文件夹及对文件的操 作。在导入os模块库后,通过执行dir(os)和dir(os.path)语句,可以查看其模块和函数的 名称。这里就其中几个常用的函数做详细介绍。 1.获取当前工作路径 调用os.getcwd()函数可获得当前的工作路径,注意当前路径并不是指脚本所在的路 径,而是所运行脚本的路径(二者经常会是一致的)。例如: >>> import os >>> print(os.getcwd()) C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38 如果将上述两条语句内容写入Python程序文件cwd.py,并保存在E:\\code文件夹下, 运行Windows的命令行窗口并进入E:\\code文件夹,输入: E:\\code> python pwd.pyencoding='utf-8') 否则在打开一个中文文本文件并尝试读取其中文本时,会抛出UnicodeDecodeError异 常。另外,可以使用codecs模块库读取不同编码的文本(示例代码见文件code_codecs_read _utf8.py)。 3.3.2结构化文件读写 可以使用NumPy和pandas模块库中的相应函数,从结构化的文本文件中读取数据, 并以numpy.ndarray或pandas.DataFrame等结构来组织数据。 1.NumPy模块库 调用numpy.loadtxt()函数,可以读入文本文件中的内容,并将其组织成numpy. ndarray数据类型的数据。其原型为: numpy.loadtxt(fname, dtype= < class 'float'>, comments= '# ', delimiter= None, converters= None, skiprows = 0, usecols = None, unpack = False, ndmin = 0, encoding='bytes', max_rows=None) 其中主要参数的说明见表 |