Python training UGA:

Pierre Augier (LEGI), Cyrille Bonamy (LEGI), Eric Maldonado (Irstea), Franck Thollard (ISTERRE), Christophe Picard (LJK)

Help, documentation, tutorials, moocs

Applications and tools

Not adressed during this training...

  • iterators and keyword yield
  • decorators and @ notation
  • async and await keywords
  • ...

Books

  • Apprendre à programmer avec Python 3 / Gérard Swimmen
  • Python 3 Les fondamentaux du langage / Sébastien Chazallet
  • Big Data et machine learning / Pirmin Lemberger, Marc Batty, Médéric Morel, Jean-Luc Raffaëlli

Videos

  • youtube and the pycon (Python conferences)

Moocs

Applications and tools

Scripting language

  • Easy to use writing scripts for parsing a text file
  • IT (Information Technology) automation / DevOps: fabric, salt, ansible, nuka

File conversion

  • csv
  • LibreOffice / Office
  • xml
  • compression format
  • json
  • hdf5
  • netcdf
  • ...

Python for teaching

See this book: Python in Education

Web

Mainly on the server side... Many Python web frameworks:

  • Django
  • Flask
  • Bottle
  • Pyramid
  • Morepath

But also for the client side:

Database and frameworks

  • Relational Database Support (PostgreSQL, MySQL, sqlite, Oracle...)
  • NoSQL Database Support
  • ORM Support (SQLAchemy, PeeWee, Django ORM)

GUI (see https://wiki.python.org/moin/GuiProgramming)

  • tkinter (in the standard library)
  • Qt: PyQT, Pyside, QtPy
  • wxPython
  • kivy
  • BeeWare: Build native apps with Python.

Animation movies

See this presentation

  • Blender
  • Natron

Gaming

  • PyGame

Scientific ecosystem

Strong dynamics, rich and complicated landscape (many, many projects):

  • rich Python standard library
  • core scientific Python packages (ipython, jupyter, numpy, pandas, scipy, matplotlib)
  • many specialized tools (oriented toward methods and goals)

Core scientific Python packages

ipython: Interactive Python

jupyter: notebooks and presentations

  • Online trainings
  • Create and share documents that contain live code, equations, visualizations and explanatory text
  • Data cleaning and transformation, numerical simulation, statistical modeling, machine learning and much more.

numpy: fundamental package for scientific computing with Python (N-dimensional array object)

pandas: data analysis library

scipy: collection of mathematical algorithms and convenience functions

matplotlib: plotting library

Many specialized tools (oriented toward methods and goals)

Visualization (creating figures and movies with data)

Several tools, based on Matplotlib or not... see this presentation;

GIS computing

  • Geospatial processing library (shapely, pyproj, pyshp, geoviews...)
  • Qgis Python API
  • ArcGIS Python API
  • Grass Python API

Image processing

Big data, Artificial Intelligence, Machine Learning, Deep Learning

  • scikit-learn
  • Spark

Automation in factories and laboratory experiments

See these presentations on Factory Automation with Python and asyncio in autolib's car.

Libraries by and for scientific communities (oriented towards subjects)

  • astropy and sunpy (astronomy, see for example LIGO)
  • biopython (molecular biology)
  • Nipy and Dipy (neurology)
  • obspy (seismology)
  • atmospheric and oceanic sciences (see for example this post)
  • fluiddyn (fluid mechanics)
  • ...