Other Packages

There are lots of other packages in the python ecosystem.

This is an opinionated list with packages sorted in order of preference, and/or the best order for learning.

Note

If the research group has a particular interest in any of the following packages. Please add a comment to this issue on the workshop repository Issues list and let me know as a comment

Plotting and Visualisation

Package

Description

matplotlib

The core library for generating plots

seaborn

A plotting library with a focus on statistical graphics

bokeh

build plots for the web through javascript powered visualisations

Plotly

a python interface to Plotly for interactive plots

Statistical Modelling & Machine Learning

Package

Description

statsmodels

Statistical modelling (Econometrics focus)

linearmodels

Extends statsmodels to include Panel Models, High Dimensional Fixed Effects, System Regressions etc.

scikit-learn

The standard machine learning library

Stan

Bayesian Statistical modeling, data analysis, and prediction

PyMC3

Alternative package for Bayesian statistical modeling

scikit-survival

Survival analysis based on top of scikit-learn

lifelines

Survival analysis in Python

Performance & Scale

Package

Description

Numba

Generates optimised code using a just-in-time compiler

Dask

Infrastructure for building parallel workloads across cpu cores or machines

Cython

Translates Python-style code to C

Scientific Computing & Mathematics

Package

Description

scipy

The core library for scientific computing including statistics, linear algebra, numerical integration and optimisation

cvxpy

Convex optimisation

FEniCS

Platform for partial differential equations (PDE)

Networks

Package

Description

networkx

NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks

networkit

A toolkit for large-scale network analysis

graph-tool

Network library designed to be fast and largely implemented in C/C++

Snap.py

A python interface for SNAP (a general purpose, high performance library for analysis and manipulation of large networks)

DeepGraph

A pandas based entry point into defining networks

The article Python Packages for Networks is a good reference [1].

Others:

Natural Language Processing (NLP)

Course

Description

NLTK

Natural Language Toolkit

SpaCy

Library with lots of NLP algorithms

gensim

Topic modelling

Online Courses

Course

Description

Python Programming for Economics and Finance

Introduction to the python language

Quantitative Economics with Python

A series of lectures on quantitative economic modelling

Software Carpentry

Introduction to various programming topics

Data carpentry

Hands-on, interactive lessons on various data analysis topics

1

Vladimir Batagelj. Python Packages for Networks, pages 1943–1952. Springer New York, New York, NY, 2018. URL: https://doi.org/10.1007/978-1-4939-7131-2_110210, doi:10.1007/978-1-4939-7131-2_110210.