Giter Club home page Giter Club logo

scipy-crash-course's Introduction

Scientific Python Crash Course

This is the material for a 20 hours crash course on Scientific Python that has been split in 5 beginner and 3 advanced modules. Contributions and feedbacks are welcome. Released under a CC-BY 4.0 International license.

Nicolas P. Rougier


Material

This lesson aims at providing the student with a clean development environment, including Python installation and essential packages (using the Anaconda installer), a decent text editor (e.g. emacs, vim, atom, notepad++), a git command line and a shell. We'll also introduce the Python & IPython shells, the Jupyter notebook and explains how to run a python script from the command line or from inside the IPython shell.

Keywords: anaconda, shell, notebook, script, git, editor
Prerequisites: None
Resources: None


We introduce here the Python language. Only the bare minimum necessary for getting started with Numpy and Scipy is addressed here. To learn more about the language, consider going through the excellent tutorial https://docs.python.org/tutorial. Dedicated books are also available, such as http://www.diveintopython.net/.

Keywords: python, types, control flow, function, package
Prerequisites: Installation
Resources: The Python tutorial


This lesson gives an overview of NumPy, the core library for performant numerical computing, with support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays.

Keywords: numpy, array, dtype, shape, broadcast
Prerequisites: Introduction
Resources: SciPy Lecture Notes


In this lesson, we are going to explore Matplotlib that is the single most used Python package for 2D-graphics. It provides both a very quick way to visualize data from Python and to produce publication-quality figures in many different formats. We'll cover only most common use cases.

Keywords: matplotlib, figure, plot, data
Prerequisites: Introduction, Numerical computing
Resources: Scientific Visulization: Python + Matplotlib


We'll explore the SciPy library that contains a large number of independent modules for optimization, linear algebra, integration, interpolation, special functions, FFT, signal and image processing, ODE solvers and other tasks common in science and engineering.

Keywords: linear algebra, signal processing, analysis, integration, solvers
Prerequisites: Numerical Computing
Resources: SciPy Lecture Notes


Version control is the lab notebook of the digital world: it’s what professionals use to keep track of what they’ve done and to collaborate with other people. Every large software development project relies on it, and most programmers use it for their small jobs as well. And it isn’t just for software: books, papers, small data sets, and anything that changes over time or needs to be shared can and should be stored in a version control system.

Keywords: git, github, clone, commit, push, fork
Prerequisites: Installation
Resources: Software Carpentry


The goal of this lesson is to explain some vectorization techniques that can drastically improve computation, with several orders of magnitude in some cases.

Keywords: Code, Problem, Spatial, Temporal
Prerequisites: Numerical Computing
Resources: From Python to Numpy


Cython is a static compiler for both the Python programming language and the extended Cython programming language that eases the writing of C extensions. Numba translates Python functions to optimized machine code at runtime (just in time) using the industry-standard LLVM compiler library.

Keywords: Optimization, Cython, Numba, Compiler, JIT
Prerequisites: Numerical Computing , Vectorization techniques
Resources: SciPy Lecture Notes


Bibliography

Copyright notice

Copyright © 2021 Nicolas P. Rougier — Released under a CC-BY 4.0 International license.
Banner image copyright © Randall Monroe (XKCD #353) — This course has been written in November 2021 using:

scipy-crash-course's People

Contributors

rougier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.