Python è un linguaggio di programmazione interpretato estremamente versatile. I punti di forza sono la facilità di utilizzo (sintassi semplice e ben organizzata, grande attenzione alla documentazione), la rapidità con cui si possono creare script e applicazioni (poche righe di codice, ampia libreria “battery included”) e l’estrema autoironia (siccome il nome deriva dai mitici Monty Python, è normale trovare esempi che traboccano di spam.. inoltre provate a digitare import this).

Python può essere utilizzato con successo in innumerevoli aspetti della ricerca scientifica. In primo luogo, può sostituire facilmente i linguaggi più noti come Fortan e C, dei quali permette di evitare l’aspetto della compilazione. La presenza di pacchetti scientifici quali Numpy, Scipy e Matplotlib ne permette un utlizzo analogo al core di Matlab (calcolo matriciale ad alta efficienza, fit e ottimizzazioni). Pacchetti specializzati estendono il linguaggio nelle più differenti direzioni della ricerca: ad esempio esistono moduli per l’algebra degli intervalli, e per le rappresentazioni a precisione arbitraria (gmpy).

I tre approcci al python scientifico

  • Scaricare Python, e i pacchetti Numpy, Scipy e Matplotlib (i pacchetti fanno già parte della distribuzione Ubuntu). Attenzione: in questo momento la comunità Python sta effettuando una graduale transizione dalla versione 2 alla 3. Questo comporta una incompatibilità tra i codici, per cui molti pacchetti sono ancora disponibili solo per la 2. La versione corrente (Maggio 2009) è la 2.6.
  • Utilizzare la distribuzione Enthought. Essa estende grandemente il linguaggio, inoltre i moduli Chaco e Mayavi2 sono ottimi frontend per la visualizzazione di plot rispettivamente 2d e 3d.
  • Utilizzare la distribuzione Sage. Essa si presenta come una raccolta dei principali moduli scientifici per python, e contiene anche un proprio ambiente di sviluppo interattivo che avvicina le sessioni di Python ai notebook di Mathematica

Utilizzo di Python

Tutorial e documentazione di Python: ovvio e utilissimo

Dive into Python: l’equivalente della serie Thinking in.. un approccio più maturo al linguaggio

Cookbook: una particolarità di python è la presenza di ricettari, ovvero soluzioni ai problemi più vari,che possono essere espresse in poche righe.

Software carpentry: un corso generico di programmazione, rivolto soprattutto agli scienziati. Affrettatevi a leggerlo prima che i soldi di MATLAB rimuovano le piacevoli dissertazioni su Python