关于科学 Python 讲座

版本: 2024.2rc0.dev0

https://zenodo.org/badge/doi/10.5281/zenodo.594102.svg

作者

编辑

  • Gaël Varoquaux

  • Emmanuelle Gouillart

  • Olav Vahtras

  • Pierre de Buyl

  • K. Jarrod Millman

  • Stéfan van der Walt

章节作者

按字母顺序排列。

  • Christopher Burns

  • Adrian Chauve

  • Robert Cimrman

  • Christophe Combelles

  • André Espaze

  • Emmanuelle Gouillart

  • Mike Müller

  • Fabian Pedregosa

  • Didrik Pinte

  • Nicolas Rougier

  • Gaël Varoquaux

  • Pauli Virtanen

  • Zbigniew Jędrzejewski-Szmek

  • Valentin Haenel (2011 年至 2015 年的编辑)

额外贡献

按字母顺序排列

  • Osayd Abdu

  • arunpersaud

  • Ross Barnowski

  • Sebastian Berg

  • Lilian Besson

  • Matthieu Boileau

  • Joris Van den Bossche

  • Michael Boyle

  • Matthew Brett

  • BSGalvan

  • Lars Buitinck

  • Pierre de Buyl

  • Ozan Çağlayan

  • Lawrence Chan

  • Adrien Chauve

  • Robert Cimrman

  • Christophe Combelles

  • David Cournapeau

  • Dave

  • dogacan dugmeci

  • Török Edwin

  • egens

  • Andre Espaze

  • André Espaze

  • Loïc Estève

  • Corey Farwell

  • Tim Gates

  • Stuart Geiger

  • Olivier Georg

  • Daniel Gerigk

  • Robert Gieseke

  • Philip Gillißen

  • Ralf Gommers

  • Emmanuelle Gouillart

  • Julia Gustavsen

  • Omar Gutiérrez

  • Matt Haberland

  • Valentin Haenel

  • Pierre Haessig

  • Bruno Hanzen

  • Michael Hartmann

  • Jonathan Helmus

  • Andreas Hilboll

  • Himanshu

  • Julian Hofer

  • Tim Hoffmann

  • B. Hohl

  • Tarek Hoteit

  • Gert-Ludwig Ingold

  • Zbigniew Jędrzejewski-Szmek

  • Thouis (Ray) Jones

  • jorgeprietoarranz

  • josephsalmon

  • Greg Kiar

  • kikocorreoso

  • Vince Knight

  • LFP6

  • Manuel López-Ibáñez

  • Marco Mangan

  • Nicola Masarone

  • John McLaughlin

  • mhemantha

  • michelemaroni89

  • K. Jarrod Millman

  • Mohammad

  • Zachary Moon

  • Mike Mueller

  • negm

  • John B Nelson

  • nicoguaro

  • Sergio Oller

  • Theofilos Papapanagiotou

  • patniharshit

  • Fabian Pedregosa

  • Philippe Pepiot

  • Tiago M. D. Pereira

  • Nicolas Pettiaux

  • Didrik Pinte

  • Evgeny Pogrebnyak

  • reverland

  • Maximilien Riehl

  • Kristian Rother

  • Nicolas P. Rougier

  • Pamphile Roy

  • Rutzmoser

  • Sander

  • João Felipe Santos

  • Mark Setchell

  • Helen Sherwood-Taylor

  • Shoeboxam

  • Simon

  • solarjoe

  • ssmiller

  • Scott Staniewicz

  • strpeter

  • surfer190

  • Bartosz Telenczuk

  • tommyod

  • Wes Turner

  • Akihiro Uchida

  • Utkarsh Upadhyay

  • Olav Vahtras

  • Stéfan van der Walt

  • Gaël Varoquaux

  • Nelle Varoquaux

  • Olivier Verdier

  • VirgileFritsch

  • Pauli Virtanen

  • Yosh Wakeham

  • yasutomo57jp

更新内容

2024.1 版本 (2024 年 4 月)

  • Python 3.10、3.11、3.12

  • 更名为科学 Python 讲座

  • 删除旧内容

  • 主要更新以支持最新包

  • SciPy 和 scikit-image 章节的更新

2022.1 版本 (2022 年 8 月)

  • 用加州数据替换 scikit-learn 房屋示例 (Marco Mangan)

  • 修复链接和错别字 (Zachary Moon、Tim Gates、Marco Mangan、Gert-Ludwig Ingold)

  • 修复 fftpack 图形 (Osayd Abdu)

  • 更新软件版本 (Pierre de Buyl)

2020.2 版本 (2020 年 9 月)

  • 用 imageio 替换 scipy.misc 中的图像 i/o (Pierre de Buyl)

  • 更新有关字典排序的信息 (Bharath Saiguhan)

  • 抑制 mandelbrot 示例的警告 (Pierre de Buyl)

  • 针对 NumPy 的更改更新 NumPy 简介和高级用法:措辞、字节表示、np.zeros 的浮点参数 (Ross Barnowski)

  • 修复指向 NumPy 文档的链接以使用 numpy.org (Ross Barnowski)

  • 更新关于转置数组的说明 (Ross Barnowski 和 Eric Wieser)

  • 对激光雷达数据处理使用生成的图形文件 (Lawrence Chan)

  • 更新从 PyMC2 到 PyMC3 的链接 (B. Hohl)

  • 修复透明弹出菜单以具有背景 (Pierre de Buyl)

2020.1 版本 (2020 年 3 月)

  • 修复过时的 URL (Gert-Ludwig Ingold)

  • 更新包 (Pierre de Buyl)

  • 删除 Python 2 持续集成 (Olav Vahtras - EuroSciPy 2019 sprint)

  • 修复棋盘大小 (Mark Setchell)

  • 添加目标和设计选择 (Gert-Ludwig Ingold 和 Pierre de Buyl)

  • 使 numpy 高级迭代器示例更详细 (Sebastian Berg)

  • 使用空列表而不是空元组来停用刻度 (Tim Hoffmann)

  • 修复错别字 (Sander van Rijn、cydave、Michel Corne) 和 2 个错误 (Andreas Hilboll)

  • 提高多项式示例代码的可读性 (Michel Corne)

  • 替换调试环境的建议 (Gert-Ludwig Ingold)

  • 添加关于 Python 2 与 Python 3 的部分 (Pierre de Buyl)

2019.1 版本 (2019 年 5 月)

  • 更新 matplotlib 兼容性以支持版本 2.2 (Mike Mueller、Joris Van den Bossche、Pierre de Buyl)

  • 使 C-API 示例 cos_module_np 兼容 Python 2/3 (Michael Boyle)

  • 修复错别字和过时的 URL (Dogacan Dugmeci、Matthieu Boileau、Stuart Geiger、Omar Gutiérrez、Himanshu、Julian Hofer、Joseph Salmon、Manuel López-Ibáñez、Nicola Masarone、michelemaroni89、Evgeny Pogrebnyak、tommyod)

2018.1 版本 (2018 年 9 月)

  • 修复措辞、错别字、颜色 (Pierre de Buyl、Greg Kiar、Olav Vahtras Kristian Rother)

  • 修复插值示例代码 (Scott Staniewicz)

  • 修复高密度显示的 CSS (Gaël Varoquaux)

  • 使用 PyX 生成索引图形 (Gert Ingold)

  • 明确警告不要使用 Python 2 (Bruno Hanzen)

  • 更新外部链接 (Bruno Hanzen)

  • 更新依赖项的版本:sphinx-gallery、pandas、statsmodels (Gaël Varoquaux)

2017.1 版本 (2017 年 10 月)

  • 更新优化章节 (Michael Hartmann、Gaël Varoquaux)

  • 更新 SymPy 章节 (Vince Knight)

  • 更新高级 NumPy (Bartosz Teleńczuk)

  • 更新 scikit-learn 章节 (Gaël Varoquaux)

  • 更新 SciPy 章节 (Gaël Varoquaux)

  • 使提示中的“>>>” 不可选择 (Pierre de Buyl)

  • 对 pip 和 conda 使用通用包要求,并改进构建说明 (Gert-Ludwig Ingold、Vince Knight、Pierre de Buyl)

  • 设置 Circle CI (Loïc Estève)

  • 改进对 Python 3 整数除法和对 print 的调用的支持 (Loïc Estève、Gert-Ludwig Ingold、Pierre de Buyl、Gaël Varoquaux)

  • 将测试运行器更改为 pytest (Pierre de Buyl)

  • 将 plot 指令替换为 sphinx-gallery (Gert-Ludwig Ingold)

2016.1 版本 (2016 年 9 月)

  • 重新设计介绍章节 (Gaël Varoquaux)

  • 集成 sphinx-gallery:示例现在是 Jupyter 笔记本 (Gaël Varoquaux、Gert-Ludwig Ingold、Óscar Nájera)

  • 更好的 Python 3 测试和支持 (Gert-Ludwig Ingold)

  • 使示例适应 Matplotlib 1.5 (Gaël Varoquaux)

  • 使 numpy 章节现代化 (Bartosz Telenczuk)

2015.3 版本 (2015 年 11 月)

  • 折叠的边栏现在可以为中等大小的显示弹出 (Gaël Varoquaux)

  • 用浣熊脸替换了 Lena 的图片 (Thouis Jones)

2015.2 版本 (2015 年 10 月)

  • 封面上的作者按 bibtex 条目中的顺序排列 (Nicolas Rougier)

  • 在移动设备上更好的渲染 (Gaël Varoquaux)

  • 修复结构化文本标记错误 (Olav Vahtras)

2015.1 版本 (2015 年 9 月)

  • 关于 Python 统计的新章节 (Gaël Varoquaux)

  • 更好的 PDF 布局 (Gaël Varoquaux)

  • 新的 HTML 布局,简化的格式,移动设备友好和边栏 (Gaël Varoquaux、Nelle Varoquaux)

  • HTML 首页和 PDF 封面上的徽标 (Nicolas Rougier)

  • 兼容 Python 3 的代码 (Gaël Varoquaux、Olav Vahtras)

  • 将代码更新为最新版本的项目 (Pierre de Buyl、Emmanuelle Gouillart、Gert-Ludwig Ingold、Nicolas Pettiaux、Olav Vahtras、Gaël Varoquaux、Nelle Varoquaux)

  • Matplotlib 更新,删除了已弃用的 pylab 接口 (Nicolas Rougier)

2013.2 版本 (2013 年 8 月 21 日)

  • 简化了 NumPy 章节 (Valentin Haenel)

  • 新的 HTML 渲染布局 (Gaël Varoquaux)

2013.1 版本 (2013 年 2 月 10 日)

  • 对高级图像处理章节的改进 (Emmanuelle Gouillart)

  • 升级了入门语言章节 (Valentin Haenel)

  • 升级了入门 numpy 章节 (Valentin Haenel)

  • 关于与 C 交互的新高级章节 (Valentin Haenel)

  • 在各个地方进行了一些小的修复和改进 (Robert Gieseke、Ozan Çağlayan、Sergio Oller、kikocorreo、Valentin Haenel)

2012.3 版本 (2012 年 11 月 26 日)

此版本集成了为 Euroscipy 大会编写的更改

  • Matplotlib 章节已完全重做 (Nicolas Rougier、Gaël Varoquaux)

  • 关于数学优化的新的高级章节 (Gaël Varoquaux)

  • Mayavi 章节已重做 (Gaël Varoquaux)

  • 首页布局略有改进:折叠 TOC (Gaël Varoquaux)

2012.2 版本 (2012 年 6 月 22 日)

一个小版本,进行了一些清理 (Gael Varoquaux)。

2012.1 版本 (2012 年 6 月 20 日)

这是一个小版本,进行了许多清理。特别是清理了布局 (Gael Varoquaux),缩短了 numpy 章节,并对介绍章节和高级章节进行了去重 (Gael Varoquaux),以及对所有代码进行了 doctesting (Gael Varoquaux)。

2012.0 版本 (2012 年 4 月 22 日)

这是一个小版本,进行了一些清理。特别是清理了 scikit-learn 章节 (Lars Buitinck),更具信息性的章节标题 (Gael Varoquaux),以及其他修复 (Valentin Haenel、Virgile Fritsch)。

2011.1 版本 (2011 年 10 月 16 日)

此版本是 Euroscipy 2011 教程的重新设计版本。布局已清理和优化 (Valentin Haenel 和许多其他人),Traits 章节已合并 (Didrik Pinte)

2011 版本 (2011 年 9 月 1 日)

此版本用于 Euroscipy 2011 教程。numpy 入门章节已重新设计 (Pauli Virtanen)。入门章节的大纲已简化 (Gaël Varoquaux)。添加了高级章节:高级 Python 结构 (Zbigniew Jędrzejewski-Szmek),调试代码 (Gaël Varoquaux),优化代码 (Gaël Varoquaux),图像处理 (Emmanuelle Gouillart),scikit-learn (Fabian Pedregosa)。

许可证

所有代码和材料均采用

知识共享署名 4.0 国际许可证 (CC-by)

https://creativecommons.org/licenses/by/4.0/

请参阅 AUTHORS.rst 文件以获取贡献者列表。

贡献

Scientific Python 讲座是一个社区驱动的项目,需要不断维护和改进。欢迎新的贡献,例如措辞改进或新主题的加入。

要提出对讲座的错误修复或直接改进,请查看下面的贡献指南。

对于新主题,请先阅读目标,然后在 GitHub 项目上打开一个问题与编辑讨论。

讲座的目标和设计选择

贡献者应牢记 Scientific Python 讲座的以下目标和设计选择。

目标

  • 提供对 Python 及其主要计算包(“Scientific Python 堆栈”)的独立介绍。

  • 为一系列广泛使用且稳定的计算库提供教程。目前,我们涵盖了 pandas、statmodels、seaborn、scikit-image、scikit-learn 和 sympy。

  • 尽可能对代码示例应用自动测试。

设计选择

  • 每一章都应该为 1‒2 小时的教程提供有用的基础。

  • 代码应该可读。

  • 应遵循惯用风格,例如import numpy as np,优先使用数组操作,遵循 PEP8 编码规范。

贡献指南

目录guide包含关于如何贡献的说明。

构建说明

要生成用于屏幕显示的 html 输出,请键入

make html

生成的 html 文件可以在 build/html 中找到。

第一次构建需要很长时间,但信息会被缓存,后续构建会更快。

要生成用于打印的 pdf 文件,请

make pdf

pdf 构建器有点复杂,你可能会遇到一些 TeX 错误。调整 *.rst 文件中的布局通常足以解决这些问题。

要求

构建要求列在 requirements file

numpy==2.1.1
scipy==1.14.1
matplotlib==3.9.2
pandas==2.2.3
patsy==0.5.6
pyarrow==17.0.0
scikit-learn==1.5.2
scikit-image==0.24.0
sympy==1.13.3
statsmodels==0.14.3
seaborn==0.13.2
pytest>=8.3
sphinx>=8.0
sphinx-gallery>=0.17
sphinx-copybutton
coverage>=7.6
Pillow
pooch
ipython
pickleshare
pre-commit==4.0
requests
sphinxcontrib-jquery

确保你已设置了 虚拟环境 或 conda 环境,然后使用以下命令安装要求

pip install -r requirements.txt

请注意,你还需要以下系统包

  • Python C 开发头文件(例如 Debian 上的 python3-dev 包),

  • 像 gcc 这样的 C 编译器,

  • GNU Make,

  • 完整 LaTeX 发行版,例如 TeX Live(例如 Debian/Ubuntu 上的 texlive-latex-basetexlive-latex-extratexlive-fonts-extralatexmk),

  • dvipng,

  • latexmk,

  • git.

更新封面

使用 inkscape 修改 images/ 中的封面,然后导出为 PDF。

inkscape --export-filename=cover-2024.pdf cover-2024.svg

确保 images/cover.pdf 符号链接指向正确文件。