前言
《利用Python进行数据分析》第一版使用python2.7,出版于2012年
本书第二版使用python3.6,编写于2016年~2017年,针对pandas库的新特征进行更新
目前的笔记依赖于第三版,编写于2022年,并对pandas库的新特征进行更新
第三版在项目上尽可能与前两版保持一致,但是在细节有一些优化;同时第三版最大的一处变化是开放了在线版本,并通过git版本控制进行持久维护,查缺补漏(给作者点个赞)。
本书中所有涉及的代码和数据也都可以在Github项目或Gitee项目中找到
在前言部分,作者也致敬和感谢了很多曾经激励或帮助他本人的机构与伙伴
1 本书主要内容
介绍Python编程和用于数据处理的库和工具环境
深入说明通过Python进行数据控制、处理、整理、分析等要点与细节
本文主要需要处理的是结构化数据(structured data),包括但不限于表格型/关系型数据、多维数组、多表关联、时间序列。数据类型也以字符串、数字化、日期为主
2 Python的特性
Python的优势
- 数据科学、机器学习、软件开发等领域,都具备规模庞大并且活跃的社区
- 在数据分析、交互式计算以及数据可视化方面,也具备强大而优秀的性能
- 作为一种胶水(Glue)语言,Python能很好地衔接不同的语言或软件系统
- Python很适合科研领域研究与测试,在工业的生产开发也具备不俗的实力
Python的不足:
- 作为一种解释型编程语言,天然的比编译型语言运行慢
- 由于全局解释器锁(Global Interpreter Lock,GIL)的存在,Python不适合高并发多线程的场景
3 Python的常用库
Numpy:科学计算基础包,能高效地处理数组与相关的数学运算
pandas:本书的重点研究工具,兼具Numpy的高性能和类似Excel的灵活性
matplotlib:图表绘制基础包,常作为数据可视化工具的首选
IPython和Jupyter:交互式的Python编程,更符合数据分析与探索的实战场景
SciPy:处理科学计算的常用包,包含微积分、最优化、统计检验等功能
scikit-learn:通过机器学习工具包,内置大量常用的机器学习算法
statsmodels:统计分析包,包含很多经典统计学和经济计量学的算法
4 Python的安装与配置
不同系统下的Python安装:略
Python包的安装或升级使用conda
或pip
:细节略
入门推荐直接安装Miniconda或Anaconda,更多细节可查阅Anaconda基础知识
集成开发环境(IDEs)和文本编辑器:PyDev(免费)、PyCharm(个人开发者免费)、Visual Studio(免费,个人推荐)、Spyder(免费,Anaconda自带)、Komodo IDE(付费)
5 社区和会议
常见社区:
- pydata:和Python数据分析或pandas相关
- pystatsmodels: 和statsmodels或pandas相关
- scikit-learn和Python机器学习相关组织列表
- numpy-discussion:和NumPy相关
- scipy-user:和SciPy和科学计算相关
常见会议:
- PyCon和EuroPython:北美和欧洲的两大Python会议
- SciPy和EuroSciPy:北美和欧洲两大科学计算的相关会议
- PyData:世界范围内,专注数据科学和数据分析的地区性会议
- 国际和地区的PyCon会议完整列表
6 本书导航
本书第2~3章,主要介绍Python的特点,IPython和Jupyter notebooks。非初学者可选择性跳过
常见术语:数据规整(Munge/Munging/Wrangling)、伪代码(Pseudocode)、语法糖(Syntactic sugar)