Giter Site home page Giter Site logo

scipy-bordeaux-2018's Introduction

Scientific Python course

Lecture notes from the course taught at the University of Bordeaux in the academic year 2018 for PhD students. Each student needs to come with a notebook computer running either Linux, OSX or Windows.

Adapted from https://xkcd.com/353/

The scientific Python ecosystem is made of several modules that constitute together the scientific stack. There are hundreds of Python scientific packages and most of them are built on top of numpy, scipy, matplotib, pandas, cython and/or sympy. We won't cover everything in this short course, but you should get enough information to decide if your research can benefit from Python. And I bet it will likely do.

This course is based on the following teaching material:

1. Beginner course (day 1 & 2)

1.1 - Introduction (day 1)

This gentle introduction to Python explains how to install Python and introduces some very simple concepts related to numerical expressions and other data types.

See also:

1.2 - Programming with Python (day 1)

This lecture does not attempt to be comprehensive and cover every single feature, or even every commonly used feature. Instead, it introduces many of Python's most noteworthy features, and will give you a good idea of the language’s flavor and style.

See also:

1.3 - Computation I (day 2)

The primary goal of this lesson is to introduce the numpy (numerical python) module which is de facto the standard module for numerical computing with Python. It is essential for you to become familiar with this module since it will be used everywhere in the next lessons.

See also:

1.4 - Visualization (day 2)

This tutorial gives an overview of Matplotlib, the core tool for 2D & 2.5D plotting that produces publication quality figures as well as interactive environments across platforms.

See also:


2. Advanced course (day 3 & 4)

2.1 - Scientific computation II (day 3)

This lesson introduces the scipy package that contains various toolboxes dedicated to common issues in scientific computing. Its different submodules correspond to different applications, such as interpolation, integration, optimization, image processing, statistics, special functions, etc.

See also:

2.2 - Version control (day 3)

This lesson introduces version control using git. 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. 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.

See also:

2.3 - C/Python integration (day 4)

This chapter covers the many different routes for making your native code (primarily C/C++) available from Python, a process commonly referred to wrapping. The goal of this chapter is to give you a flavour of what technologies exist and what their respective merits and shortcomings are, so that you can select the appropriate one for your specific needs.

2.4 - Vectorization (day 4)

NumPy is all about vectorization. If you are familiar with Python, this is the main difficulty you'll face because you'll need to change your way of thinking and your new friends (among others) are named "vectors", "arrays", "views" or "ufuncs".


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.