THE PYTHON PROGRAMMING LANGUAGE

WHY PYTHON ?

WHY "PYTHON" ?

  • Monty Python Reference

    "​When he began implementing Python, Guido van Rossum was also reading the published scripts from “Monty Python's Flying Circus”, a BBC comedy series from the 1970s. Van Rossum thought he needed a name that was short, unique, and slightly mysterious, so he decided to call the language Python." -- General Python FAQ
     
  • So nothing to do with reptiles... except for its logo:

WHY LEARNING PYTHON?

  • In general :
    • High-level, general-purpose programming language
    • Easy to learn
    • Elegant yet simple and compact syntax 
    • Dynamic typing + interpreted language
    • High-level data structures
    • Object-Oriented Programming
    • Many libraries 
    • Great for both scripting and software/app development
    • Free and open-source software, with vibrant community

    • Extensible: add new built-in modules to Python (written in C)
       

  • For Data Scientists :
    • Very rich scientific computing libraries
    • All DS tasks can be performed with Python:
      • accessing, collecting, cleaning, analysing, visualising data
      • modelling, evaluating models, integrating in prod, scaling

PYTHON for ds
Components

  • Python
    • Python language
    • Modules of the standard library
    • A large number of specialised modules and apps written in Python
    • Development tools
  • IPython
    • ​an interactive Python shell
    • Jupyter Notebook: web application to create and share documents that contain live code, equations, visualizations and explanatory text
  • NumPy: provides powerful numerical array objects, and routines to manipulate them
  • SciPy: high-level data processing routines. Optimisation, regression, interpolation, etc.
  • Matplotlib: 2- and 3-D visualisations and plots
  • Pandas: powerful data structures especially to deal with time series
  • Scikit-learn: Machine Learning toolbox
  • statsmodels: statistical modelling toolbox

PYTHON @DSR08

SCHEDULE & TOC

  • (L) Mon Sept 19: python intro, py2-py3, Jupyter, hands-on 

 

  • (L) Thu Sept 22: pandas                                                             

 

  • (M) Mon Sept 26: numpy, strings and file processing          

 

  • (M) Tue Sept 27: advanced python -- OOP, scripts, modules, packages, cython

 

  • (M) Wed Sept 28: basic data structures and algorithms for data science

PYTHON 2 vs. PYthon 3

WHAT IS IT ABOUT?

  • 2 major versions of Python in widespread use:
    Python 2.x and Python 3.x
  • Some features in Python 3 are not backward compatible with Python 2
  • Some Python 2 libraries have not been updated to work with Python 3
  • There's pressure from the community to enforce the    py2->py3 transition, but many important projects are not yet there 
  • Bottom-line: there is no wrong choice per, as long as all the libraries you need are supported by the version you choose - but it'd be nice to support the transition
  • In this masterclass: we'll write Python3 code

Examples

Text

# Python 2 only:
print 'Hello'

# Python 2 and 3:
print('Hello')

# Python 2 only:
print 'Hello', 'World'

# Python 2 and 3:
from __future__ import print_function
print('Hello', 'World')
  • From print statements (Py2) to print function calls (Py3):






     
  • From integer division to true division:
     
# Python 2 only:
assert 2 / 3 == 0

# Python 2 and 3:
assert 2 // 3 == 0

# Python 3 only:
assert 3 / 2 == 1.5

# Python 2 and 3:
from __future__ import division    # (at top of module)
assert 3 / 2 == 1.5

MORE on THIS

  • To explore and test more differences:
    Jupyter Notebook by Sebastian Raschka
     
  • To keep your code Python 2 and 3 compatible:
    a comprehensive Cheat Sheet

INSTALLING PYthon
and all useful packages

several options

  • [RECOMMENDED] Anaconda (Windows, Linux, OSX) : 
    • For new Python users who want to install a full Python environment for Data Science
    • Download it here
    • Follow the simple installation instructions
  • Manual installation with Python package manager :
    • (Only) if you already have been using Python on your computer for some time 
    • Make sure to install:  Python, pip and virtualenv 
    • Follow installation instructions for: OS X, Linux or Windows
    • Once in your dedicated virtualenv for this masterclass, use pip to install of the necessary packages: 

      Warning: this might require some external dependencies to be installed. When in doubt: Google your error messages!
pip install -U numpy, scipy, ipython, matplotlib, pandas, scikit-learn

RUNNING
THE IPYTHON interpreter
and a python file

your first python file

  • Open your favorite editor
  • Create a file hello_world.py
  • Inside write the following:

     
  • Now from your shell/terminal/console run:
     
  • Then simply run the IPython interpreter:
     
  • And from there run again your hello_world.py file:
     
  • Explore further:
s = 'Hello World!'
print(s)
$ ipython hello_world.py
$ ipython
In [1]: %run hello_world.py
In [2]: s
In [3]: i = 2
In [4]: s2 = 'Hi'
In [5]: s+s2

JUPYTER notebook

in action

Start Jupyter Notebook:

$ jupyter notebook

Tutorial

More about Jupyter Notebooks... in this Jupyter Notebook

 

Tip: Try cloning or downloading it and then opening it.
Run and modify its code cells.

PYthon basics

TUTORIAL

Read and test for yourself the examples provided in:

The SciPy Lectures -- The Python Language

Tip: Practice those examples using alternatively python files, the IPython interpreter and a Jupyter Notebook.

The Python Programming Language

By Lucía Santamaría

The Python Programming Language

Second set of slides for the Introduction to Python (and useful libraries) masterclass at the Data Science Retreat.

  • 965