3 前言
3.1 Python 语言简介
Python 由 Guido van Rossum 于 1991 年创建,至今已有三十多年历史。起初只是作为一种脚本语言,用于自动化简单任务。由于其语法简洁、易于扩展,并能与 C/C++ 等语言良好集成,Python 很快成为著名的「胶水语言」(glue language),广泛应用于数据分析、Web 开发、机器学习等领域。
近年来,随着数据科学和人工智能的发展,Python 凭借其丰富的生态系统和社区支持,已成为最受欢迎的编程语言之一。根据 Stack Overflow Developer Survey 和 TIOBE 指数,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,推荐阅读:
- 官方文档:https://docs.python.org/3/
- 中文教程:廖雪峰的 Python 教程
- 快速参考手册:Python Cheatsheet
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
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)
- 书中使用了
causalml
和dowhy
两个包,前者是作者开发的一个包,后者是微软开发的一个包
- 🍎 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 学校图书馆
- CSMAR (国泰安数据库-公司金融-股票-债券):
- EPS数据平台
- Wind资讯金融终端
- 中经网产业数据
- 登录方式:点击【登陆】按钮下方的【
中山大学集団用户快捷入口
】(无需账号密码) - 国内宏观层面的数据基本上都能够找到。Excel → Python/Stata
- 例:宏观数据
- 登录方式:点击【登陆】按钮下方的【
- 中经网统计数据库
- EMIS—Emerging Markets Information Service(新兴市场动态及商务信息数据库)
- 新闻,股指,最新统计数据等
- China - Financial markest
RESSET系列数据库
- RESSET系列数据库 | RESSET企业大数据平台
- 需要输入账号和密码
- 1、中山大学校园网IP范围内,直接点击访问。
- 2、官方网站访问: http://www.resset.cn,点击页面“快速登录”右边的“企业大数据平台”链接后输入对应的用户名及密码进行登录。用户名:sysu和密码:sysu1903。
- 3、校外不限IP访问,通过CARSI平台访问登陆,访问地址:http://db.resset.com/,点击页面的:CARIS 平台登陆,选择学校,然后输入验证身份信息后登陆使用。
3.3.3 公开数据
- 全球数据
- 连小白, 2025, GMD:最新全球宏观数据库-243个国家46个宏观变量, 连享会 No.1559.
- 各国、各级政府的统计局:
- 国际国内各类组织机构