3  前言

3.1 Python 语言简介

Python 由 Guido van Rossum 于 1991 年创建,至今已有三十多年历史。起初只是作为一种脚本语言,用于自动化简单任务。由于其语法简洁、易于扩展,并能与 C/C++ 等语言良好集成,Python 很快成为著名的「胶水语言」(glue language),广泛应用于数据分析、Web 开发、机器学习等领域。

近年来,随着数据科学和人工智能的发展,Python 凭借其丰富的生态系统和社区支持,已成为最受欢迎的编程语言之一。根据 Stack Overflow Developer SurveyTIOBE 指数,Python 多年位居榜首。

3.1.1 Python 的主要特点

  • 解释型语言:不需要预编译,Python 解释器(interpreter)逐行执行代码。

  • 动态类型:变量类型在运行时确定,无需显式声明。

  • 多范式支持

    • 面向对象编程(OOP):支持类和对象。
    • 过程式编程(Procedural):支持传统函数调用结构。
    • 函数式编程(Functional):支持部分函数式特性(如 map、lambda、生成器等)。
  • 跨平台:Python 程序在不同操作系统中运行一致。

  • GIL(Global Interpreter Lock):标准 CPython 实现中采用全局解释器锁,限制了多线程的并行性,适合 IO 密集型任务,不适合重度 CPU 密集型并行任务。

3.1.2 使用场景与优势

Python 的语法简洁、学习曲线平缓,特别适合以下场景:

  • 数据分析与探索性编程(如:Jupyter Notebook)
  • 自动化脚本与任务调度
  • 爬虫、文本处理、API 调用等 IO 密集型任务
  • 快速原型开发与教学演示
  • 与 C/C++/Java 等语言的接口开发,作为胶水语言集成系统

虽然 Python 的执行效率不如 C/C++,但开发效率高社区包丰富,能大幅减少开发时间。在多数实际应用中,程序员时间往往比机器运行时间更宝贵。若需要兼顾性能,可使用 Python 编写框架,重计算部分可用 C/C++ 或 Julia 编写,并通过 Python 调用。

3.1.3 Python 之禅(The Zen of Python)

Python 的设计哲学追求:

Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. ——《The Zen of Python

可以在交互式终端中输入 import this 亲自体验。

这些哲学使得 Python 鼓励「一种最好且明确的方法来完成一件事情」,避免花哨、歧义性强的语法,从而提高代码的可读性和可维护性。

如需进一步了解 Python,推荐阅读:

3.2 参考资料

3.2.1 Python 语言

  • Allen Downey, 2012. Think Python: How to Think Like a Computer Scientist. -PDF-
    • Python 入门,通俗易懂
  • Johansson, R., 2024, Numerical Python: Scientific Computing and Data Science Applications with Numpy, SciPy and Matplotlib. Apress Berkeley, CA. Link, PDF (需要用校园 ID 登录), github
    • Python 入门,绘图,科学计算,偏微分方程,统计和机器学习初步
    • CHAPTER 4 Plotting and Visualization, 介绍绘图的基本元素.

3.2.2 数据分析

  • Wes McKinney, 2022. Python for Data Analysis: Data Wrangling with pandas, NumPy, and Jupyter (3E). Online-Read, github, gitee-码云
    • 专注于数据处理,讲的比较细致
    • 作者是 pandas 的创始人,书中介绍了 pandas 的使用方法
  • 🍎 PDSH   VanderPlas, 2023. Python Data Science Handbook, github, Online-Read, PDF-2E
    • 数据分析 + 可视化 + 机器学习
    • 提供了 Colab版本,可以无需安装 Python,直接在线运行
    • 本地已经下载:VanderPlas_2023_PDSH_Python_Data_Science_Handbook-2E.pdf

3.2.3 金融

  • Scheuch, C., Voigt, S., Weiss, P., & Frey, C. (2024). Tidy Finance with Python (1st ed.). Chapman and Hall/CRC, Online-Read, github

    • tidyfinance package
    • 股票回报, CAPM, 投资组合, Fama-French 因子模型等
    • 整体上比较简单,依赖于作者开发的 tidyfinance 扩展包。
  • Mastering Python for Finance – Second Edition, github

  • Hilpisch Y., Python for Finance. 2019. -PDF-, github

  • Machine Learning for Algorithmic Trading, 2nd edition. github, Website

3.2.4 因果推断和机器学习

  • Alves, Matheus Facure. 2022, Causal Inference for The Brave and True. Online Read, -github-
    • 基本上覆盖了目前文献中使用多的多数因果推断方法,包括 IV, DID, SDID, PSM, Matching, Panel, SCM, RDD
    • 提供了完整的 Python 代码,可以 Fork -github- 仓库,然后在本地运行 .ipynb 文档 (Jupyter Notebook)
    • 书中使用了 causalmldowhy 两个包,前者是作者开发的一个包,后者是微软开发的一个包
  • 🍎 ISLP   James, G., D. Witten, T. Hastie, R. Tibshirani. An introduction to statistical learning: with Applications in Python (ISLP)[M]. Springer, 2023, website, Resources, github, -PDF-
  • Tatsat, H., Puri, S., & Lookabaugh, B. (2020). Machine Learning and Data Science Blueprints for Finance. O’Reilly Media. -PDF-, github-2022, githu-new-2024
    • 分成监督学习和非监督学习两大部分,包含了常用的机器学习方法
    • 13 cases,涉及债券市场,股票市场分析等
    • 书里边的所有案例对应的 Python 代码可以不用本地安装,而在作者提供的 在线平台 上直接运行。
    • 用的 Jupyter Notebook

3.3 数据

3.3.1 数据科学平台和搜索引擎

  • KDNuggets - datasets
    • 数据科学和机器学习领域的知名网站,提供了大量的资源和信息。
  • Kaggle Datasets
    • 全球知名的数据科学与机器学习社区,用户可以在平台上获取数据集、参与竞赛、分享与学习代码、交流讨论。
  • UCI Machine Learning Repository
    • 机器学习领域最经典的数据集仓库,涵盖分类、回归、聚类等多种任务,适合教学和算法测试。
  • Google Dataset Search
    • 谷歌推出的专用数据集搜索引擎,聚合全球各类开放数据集,支持多语言检索,便于快速定位所需数据。
  • AWS Public Datasets
    • 亚马逊云平台提供的开放数据集,涵盖气象、基因组、卫星影像等大规模数据,适合云端分析和机器学习。
  • Microsoft Azure Open Datasets
    • 微软云平台提供的开放数据集,聚焦天气、健康、金融等领域,便于在 Azure 上直接调用和分析。
  • Open Data Portal by European Union
    • 欧盟官方开放数据门户,收录成员国及欧盟机构的各类统计、经济、社会等数据,支持多语种访问。
  • World Bank Open Data
    • 世界银行开放数据平台,提供全球各国经济、社会、发展等宏观数据,适合国际比较和经济研究。
  • Data.gov
    • 美国政府开放数据平台,涵盖农业、气候、教育、能源等众多领域,数据权威且更新及时。
  • awesome-public-datasets
    • GitHub 开放数据集列表

3.3.2 学校图书馆

中大图书馆-统计类数据库

RESSET系列数据库

  • RESSET系列数据库 | RESSET企业大数据平台
    • 需要输入账号和密码
    • 1、中山大学校园网IP范围内,直接点击访问。
    • 2、官方网站访问: http://www.resset.cn,点击页面“快速登录”右边的“企业大数据平台”链接后输入对应的用户名及密码进行登录。用户名:sysu和密码:sysu1903。
    • 3、校外不限IP访问,通过CARSI平台访问登陆,访问地址:http://db.resset.com/,点击页面的:CARIS 平台登陆,选择学校,然后输入验证身份信息后登陆使用。

3.3.3 公开数据