Apprendre python pour l’analyse de données


Télécharger Apprendre python pour l’analyse de données

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


 

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python

Types de données

Fonctions de base

Définir ses propres fonctions Conclusions

3    Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python Types de données Fonctions de base Définir ses propres fonctions Conclusions

3       Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy Intégration de code C et fortran

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Caractéristiques du langage python

Langage de haut niveau ( “loin du hardware” )

Généraliste : nombreux domaines d’application (calcul numérique , administration système, développement web, jeux ) multi paradigme : procédural, orienté objet, fonctionnel

Gestion mémoire automatique (garbage collection)

Très grande bibliothèque standard

Syntaxe orientée sur la lisibilité du code

Plusieurs contextes d’utilisation: Interface interactive (shell) > scripts > programmes > bibliothèques (modules)

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Historique

Premières versions du langage datent du début des années 90. Version 1.0 : 1994.

Python 2.0 : 2000

Aujourd’hui deux versions co-existent:

python 2.7 : Dernière version de la série des 2.x, la plus utilisée (ici aussi) python 3.0 : version destinée à corriger certaines erreurs de design qui nécessitent de casser la compatibilité.

Certaines bibliothèques (modules) dont nous parlerons sont compatibles 2.7 pas 3.x

Il existe un outil de conversion automatique 2to3 qui semble assez efficace (non testé).

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Mon historique personelle avec python

Avant: développement C et R exclusivement

Volonté d’apprendre un langage de haut niveau pour:

Manipuler / formater des fichiers rapidement Développer rapidement. Tester des idées.

Apprentissage très rapide, coder est agréable

Exécution suffisamment rapide

Réutilisation du code simple

Aujourd’hui: remplace 99.9% du C et 80% du R (subsiste

pour plot + packages spécifiques)


Philosophie

Introduction

Le langage

Les principes

There should be one – and preferably only one – obvious way to do it

Beautiful is better than ugly

Explicit is better than implicit

Simple is better than complex

Complex is better than complicated

Readability counts

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.


Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python

Types de données

Fonctions de base

Définir ses propres fonctions Conclusions

3    Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy Intégration de code C et fortran

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python

Types de données Fonctions de base Définir ses propres fonctions Conclusions

3       Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy Intégration de code C et fortran


Lancer un programme python

Principe

Ecrire une suite d’instruction dans un fichier texte .

print

'Hello

World'

Exécuter python

Introduction

Le langage

Exécution d’un programme python

Types de données

Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

Déroulement

L’interpréteur python compile en un bytecode (indépendant du système)

Le bytecode est exécuté par une Machine Virtuelle.

.

Quelques remarques sur ce fonctionnement

Introduction

Le langage

Exécution d’un programme pythonTypes de donnéesPas d’étape de compilation explicite : l’environnement d’exécution et de Fonctions de baseDéfinir ses propres fonctionsdéveloppement sont les mêmes.

ConclusionsLe bytecode n’est pas du langage machine: peut être plus lent que du code

Liste d’outils pour le

calcul et l’analyse decompilé données

Modules du projet ScipyIntégration de code C et fortran         Mais le code n’est pas toujours réinterprété non plus. Pour des modules (cf

.                                                                                                                      plus loin), python utilisera le byte-code directement sans passer par l’étape de compilation.

 Typiquement plus rapide qu’un langage interprété


Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python

Types de données

Fonctions de base Définir ses propres fonctions Conclusions

3       Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy Intégration de code C et fortran

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Types

Entiers (dimension arbitraire): 3486, -12, 999999999999L

Réels (précision dépend de l’architecture) : 3.2, 2.5e-10, 4e6

Complexes : 3+4j, 5J

Octets, Hexadécimaux : 0177, 0xFF

Les nombres

Opérateurs : +, *, >>, **, /, %

Fonctions : pow, abs, round,

Modules : math (log, cos, gamma, pi ) , random (randint, gauss, sample, shuffle )


Écriture

Simple guillemets: 'Carmen'

Double guillemets: "L'amour est l'enfant de bohème"

Échappement:'L\' amour est l\'enfant de bohème\n'

Triple guillemens:''' opéra tragique en quatre actes de Georges

Bizet ''',""" un des rôles les plus exigeants du répertoire """

Introduction

Le langage

Exécution d’un programme python

Types de données

Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Les formes simple et double guillemets sont les plus utilisées.

La forme triple permet d’écrire du texte sur plusieurs lignes (inclusion de scripts, documentation ).

Introduction

Le langage

Exécution d’un programme python

Actions

Taille : len('Carmen')

Concaténation : "L'amour " + "est l'enfant de bohème"

Répétition : "Il n'a " + 'jamais '*2 + 'connu de loi'

Exemples de surcharge d’opérateurs

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Actions

Les strings sont des séquences

>>> titre='Carmen' >>> for c in titre:

C a r m e n

print

c,

Autre utilisation de l’opérateur in, recherche:

>>> 'b'

in

titre

False

>>> 'a'

True

in

titre

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Indexation, sous-chaînes

En tant que séquence, on peut accéder aux éléments par index

Les index sont utilisés ’à la C’ de 0 à (n-1)

Il est possible d’indéxer en partant de la fin avec des indices négatifs:

>>> titre[0]

'C'

>>> titre[-1]

'n'

On peut accéder à une sous-chaine par tranchage (slicing):

>>> titre[1:5] 'arme'

##

ou

titre[1:-1]

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Introduction Le langage

Exécution d’un programme python                                    Les chaînes ne sont pas modifiables (immutable):

Types de données

>>> titre[0]='B'

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: 'str' object does not support item assignment

Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

.       Intégration de code C et fortran                                 Pour modifier, il faut créer :

>>> titre='B'+titre[1:]

>>> titre

'Barmen'

Formatage

Utilisation du caractère % pour formater des chaînes de caractères. Similaire à la fonction C sprintf

>>> auteur='Georges Bizet'

>>> annee=1875

>>> '%s, %s (%d)' % (titre,auteur, annee)

'Carmen, Georges Bizet (1875)'

 

Ou utiliser la méthode format (compat. python3):

>>> '{0}, {1} ({2})'.format(titre,auteur,annee) 'Carmen, Georges Bizet (1875)'

qui permet de nombreuses subtilités.

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Méthodes

 

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.


Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Méthodes: parsing de texte

Deux méthodes principales : split et join

>>> gene='14,14231363,14232541,MC1R'

>>> gene.split(',') ## renvoie une "list"

['14', '14231363', '14232541', 'MC1R']

>>> items=gene.split(',')

>>> '\t'.join(items) ## conc. les éléments avec la chaîne \t

'14\t14231363\t14232541\tMC1R'

>>> print '\t'.join(items)

14 14231363 14232541 MC1R

>>> gene.replace(',','\t') ## plus simple :)

'14\t14231363\t14232541\tMC1R'


Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Listes

Le type list est un des types les plus utilisés en python

Collection ordonnée (de gauche à droite) d’éléments

De taille quelconque, peut grandir, rétrécir, être modifiée, être encapsulée

(liste de listes de listes)

Actions similaires à celles vues sur les chaînes


Introduction

Le langage

Exécution d’un programme python

Types de données

Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

>>> gene='14,14231363,14232541,MC1R'

>>> L=gene.split(',')

>>> L[3]='ENSOARG00000002239' ### une liste est modifiable >>> L

['14', '14231363', '14232541', 'ENSOARG00000002239']

>>> L.append('MC1R')

>>> L

['14', '14231363', '14232541', 'ENSOARG00000002239', 'MC1R' >>> L[1]=int(L[1]) ## conversion de string vers integer

>>> L[2]=int(L[2])

>>> L ## les éléments sont de types différents

['14', 14231363, 14232541, 'ENSOARG00000002239', 'MC1R']

.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ]



Introduction

>>> L

['14', 14231363, 14232541,

'ENSOARG00000002239',

'MC1R']

>>> del L[3] ## suppression

>>> L

['14', 14231363, 14232541,

'MC1R']

 

>>> L2

['13', 63237431, 63242627,

'ASIP']

 

>>> genes=[L,L2] ### liste

de listes

 

>>> genes

[['14', 14231363, 14232541,

'MC1R'],

 

['13', 63237431, 63242627,

'ASIP']]

 

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Introduction

Le langage

Exécution d’un programme python

Types de données

Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

>>> new_gene

['6', 70189729, 70234612, 'KIT']

>>> genes.append(new_gene)

>>> genes

[['14', 14231363, 14232541, 'MC1R'],

['13', 63237431, 63242627, 'ASIP'],

['6', 70189729, 70234612, 'KIT']]

>>> () ## renvoie et

>>> mygene

['6', 70189729, 70234612, 'KIT']

>>> genes

[['14', 14231363, 14232541, 'MC1R'],

['13', 63237431, 63242627, 'ASIP']]

supprime

le

dernier

.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   élémen

Intégration de code C et fortran


Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Et aussi

###

Un code horriblement long

   

>>> 

glen=[]

   

>>> 

for g in genes:

   

glen.append(g[2]-g[1])

   

###

Un code beaucoup plus court et plus

explicite

:)

>>> 

glen=[ g[2]-g[1] for g in genes ]

   

List Comprehension Un outil puissant permettant de générer de nouvelles listes avec une syntaxe simple.

Tuples : ”Listes non modifiables”, pour stocker une collection d’objet en garantissant son intégrité. Ils n’ont que deux méthodes : count et index. Ils s’écrivent en général avec des parenthèses :

('Carmen', 'Georges Bizet', 1875)

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Dictionnaires

Liste: collection d’objets ordonnée, accès par indice : L[0]

>>> genes ## rappel

[['14', 14231363, 14232541, 'MC1R'],

['13', 63237431, 63242627, 'ASIP'],

['6', 70189729, 70234612, 'KIT']] >>> glen={} ## dictionnaire vide >>> for g in genes:

      glen[g[-1]]=g[2]-g[1] ## clef

=

nom

du

gène

>>> glen

{'MC1R': 1178, 'KIT': 44883, 'ASIP': 5196}

   

Dictionnaire: collection d’objets non ordonnée, accès par clef : R['D2'] Les clefs doivent être de type immutable : nombres, strings,


Dictionnaires par l’exemple

Introduction

>>> ()

['MC1R', 'KIT', 'ASIP']

>>> glen.values()

[1178, 44883, 5196]

>>> glen.items() ## liste de tuples

[('MC1R', 1178), ('KIT', 44883), ('ASIP', 5196)] >>> len(glen)

3

>>> for g in ():

   print g,'\t',glen[g] MC1R 1178

KIT 44883 ASIP 5196

Le langage

Exécution d’un programme python

Types de données

Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Dictionnaires par l’exemple

Introduction

Le langage

Exécution d’un programme python

>>> glen.items() ## rappel

[('MC1R', 1178), ('KIT', 44883), ('ASIP', 5196)]

## création a partir d'une liste de tuples >>> dict(glen.items())

{'MC1R': 1178, 'ASIP': 5196, 'KIT': 44883} ## Warning: Ça commence à devenir moche :(

>>> dict([ (g[-1],g[2]-g[1]) for g in genes ])

{'MC1R': 1178, 'KIT': 44883, 'ASIP': 5196}

Types de données

Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.


Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Fichiers

Le type d’objet file sert à manipuler les fichiers dans des programmes python.

Ces objets sont créés avec la fonction open.

Ils fournissent des méthodes pour travailler sur les fichiers

>>> 

input=open('','r')

## r:

read, par

>>> 

input=open('')

   

>>> 

input.close()

   

>>> 

output=open('','w')

## write

>>> 

output=open('','a')

## append

défau

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Lecture de fichiers

>>> input=open('','r')

Lecture de l’ensemble du fichier:

() Une seule chaîne input.readlines() Une liste de lignes (chaînes)

>>> input=open('')

>>> ()

'14,14231363,14232541,MC1R\n13,63237431,63242627,ASIP\n6,7018

>>> input=open('')

>>> input.readlines()

['14,14231363,14232541,MC1R\n',

'13,63237431,63242627,ASIP\n',

'6,70189729,70234612,KIT\n']

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Lecture de fichiers

Lecture d’une partie du fichier:

(N) Lit N caractères input.readline() lit une ligne

>>> (10)

'14,1423136'

>>> input.readline()

'14,14231363,14232541,MC1R\n'

>>> 

for

ligne

in

input:

     

 

pass

##

ici, on

ne

fait

rien.

 Parcourir ligne par ligne:

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Écriture de fichiers

output=open('/tmp/toto','w')

Méthodes d’un objet file:

print

>> output, S

##

ajoute

un \n final

print

>> output, S,

##

sans \n

ajouté

output.write(S) : Écrit la chaîne S dans output output.writelines(L) : Écrit la liste de chaines L dans output Utilisation du mot clef print:

Note: Incompatible avec python3 qui introduit une fonction de base print() en remplacement.

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Fichiers compressés , archives

 gzip:

import gzip f = ('') file_content = f.read()

 bz2

import bz2 f = bz2.BZ2File('.bz2') file_content = f.read()

 Dans une archive tar:

import tarfile

myarch = ('.bz2') ## f = myarch.extractfile('') file_content = f.read()

bzip'ed

 

archiv

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python Types de données

Fonctions de base

Définir ses propres fonctions Conclusions

3       Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy Intégration de code C et fortran

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

help

Python dispose d’une aide en ligne consultable à partir de l’interpréteur en ligne de commande (à la R): help() ouvre une session interactive pour consulter l’aide. Rubriques: modules, keywords, topics

>>> 

import random

         

>>> 

help(random) ##

importer

le

module

pour

consulter

>>> 

help(abs)

         

>>> 

help(''.format)

         

Pour les modules, fonctions, méthodes help(item):

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Fonctions de conversion

float(x) Convertit la chaine ou le nombre x en réel.

>>> float("1.32e6") 1320000.0

##

ou

float(1320000)

int(x) Convertit la chaine ou le nombre x en entier. Arrondit à l’entier inférieur si x est un réel

>>> int("42") 42 >>> int(2.8)

2

str(o) Renvoie une chaine de caractère repésentant l’objet o.

>>> str(10)

'10'

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

range, xrange

range permet de créer des listes d’entiers successifs.

La fonction xrange crée un générateur: elle ne construit pas la liste mais renvoie les éléments successivement.

>>> range(5) [0, 1, 2, 3, 4] >>> range(1,5) [1, 2, 3, 4] >>> range(0,6,2)

[0, 2, 4] >>> xrange(0,6,2) xrange(0, 6, 2)


range, xrange

Introduction

>>> L=range(100000000000) ## Traceback (most recent call last): File "<stdin>", line 1, in MemoryError

>>> L=xrange(100000000000) >>> for x in L:

if x < 10:

print x,

else:

break

0 1 2 3 4 5 6 7 8 9

trop gros



<module>

passera

pas

Le langage

Exécution d’un programme python

Types de données

Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

sorted

Introduction Le langage

Exécution d’un programme python                              Fonction générique de tri de liste (d’iterables)

Types de données

Fonctions de base

Définir ses propres fonctions

Conclusions

>>> 

sorted(()) ## ['ASIP', 'KIT',

'MC1R']

 

>>> 

sorted(glen.values()) ## [1178, 5196,

44883]

 

>>> 

sorted(glen.values(),reverse=True) ##

[44883, 5196,

 

Liste d’outils pour le             1178] calcul et l’analyse de données Modules du projet Scipy Arguments optionnels:

.      Intégration de code C et fortran

cmp Spécifie une fonction de comparaison entre deux éléments.

key Spécifie une fonction calculant une clef associée à un élément sur laquel le tri s’effectue.


Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python Types de données Fonctions de base

Définir ses propres fonctions Conclusions

3       Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy Intégration de code C et fortran

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Syntaxe de base

Une fonction est définie avec le mot clef def. Il est suivi du nom de la fonction et d’une liste entre () de ses arguments.

>>> def droite(x):

# Ecrit le résultat de

2x+1

     """Ecrit le

résultat de

2x+1"""

 

     print 2*x+1

>>> x=droite(2)

5

>>> x

>>> print x

None

>>> help(droite) ##

grace à la

docstring

 

Syntaxe

Introduction

return

Le mot clef return permet de renvoyer la valeur de la fonction. S’il est omis, ou n’est pas suivi d’une expression, la fonction renvoie la valeur None.

>>> def droite(x): #

Renvoie le

résultat de

2x+1

 

      """Renvoie le

      return 2*x+1

>>> x=droite(2)

>>> x

5

résultat

de 2x+1"""

   
 

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.


Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Arguments nommés et valeurs par défaut

il est possible de définir des valeurs par défaut pour certains arguments d’une fonction. Ces arguments nommés doivent être donnés après les autres (dits positionnels).

>>> def droite(x,a=2,b=1):

     """Renvoie le résultat de a*x+b"""

     return a*x+b

>>> droite(2) ## 5

>>> droite(2,a=1) ## 3

>>> droite(2,b=2,a=3) ## 8 ordre b,a n'import pas

>>> droite(b=2,a=3,x=2) ## ici non plus car nommés

>>> droite(b=2,a=3,2) ## aie

File "<stdin>", line 1

SyntaxError: non-keyword arg after keyword arg

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Expressions Lambda

De petites fonctions anonymes peuvent être créées en utilisant le mot clef lambda. Elles ne doivent être constituées que d’une seule expression. Exemple: Tri des items d’un dictionnaire

>>> glen.items()

[('ASIP', 5196), ('MC1R', 1178), ('KIT', 44883)] >>> sorted(glen.items(),key=lambda i: i[0])

[('ASIP', 5196), ('KIT', 44883), ('MC1R', 1178)] >>> sorted(glen.items(),key=lambda i: i[1])

[('MC1R', 1178), ('ASIP', 5196), ('KIT', 44883)]

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python Types de données Fonctions de base Définir ses propres fonctions Conclusions

3       Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy Intégration de code C et fortran


Interface interactive

Introduction

Le langage

Exécution d’un programme python

Script

Introduction

Programme

Module

Introduction


Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Pour continuer

Syntaxe

Autres types

Programmation Objet

Exceptions

Modules de la bibliothèque standard

Pour continuer à découvrir, apprendre les bases du langage:

et en particulier le tutorial:

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python Types de données Fonctions de base Définir ses propres fonctions Conclusions

3       Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python Types de données Fonctions de base Définir ses propres fonctions Conclusions

3       Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Numpy

Numpy est un ensemble de modules (package) dédié au calcul numérique en python

Basé sur un nouveau type d’objet : le tableau (array) multidimensionnel homogène. Il est associé à un type (entier, flottant, complexe ).

Des modules numpy fournissent des fonctions pour le calcul numérique, en particulier:

Algèbre Linéaire (numpy.linalg): calcul matriciel, décompositions, résolution d’équations Echantillonage aléatoire (numpy.random): Générateurs de nombres aléatoires, principales distributions, permutations, mélanges

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Autres éléments du projet scipy

Bibliotheque Scipy        Basé sur numpy

Etend le panel de fonction de numpy scipy.linalg = extension de numpy.linalg scipy.stats : accès à l’ensemble des distributions statistiques /tests

Shell ipython Une interface en ligne de commande améliorée, qui inclut d’emblée les modules numpy et permet d’exécuter des commandes shell (ls, cd ) matplotlib Une bibliothèque de représentation graphique 2D. Peut être utilisée de manière interactive (dans ipython) ou au sein de programmes python /numpy.

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Scikits

Packages pour certaines analyses plus spécialisées. En particulier, pour l’analyse de données génétiques on peut mentionner les packages :

scikit-learn: Machine Learning. Stable. classification (SVM, random forest ) clustering : k-means, hclust, melange gaussiens regression : ridge, lasso, elastic net, Automatic Relevance Determination Reduction de dimension : PCA, Analyse factorielle scikit-statsmodel : en developpement, : Modèles linéaires et linéaires généralisés, ANOVA, tests statistiques

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Plan

1    Introduction

2    Le langage

Exécution d’un programme python Types de données Fonctions de base Définir ses propres fonctions Conclusions

3       Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Ecrire des extensions en C

Python fournit une interface permettant :

d’écrire des extensions en C d’inclure l’interpréteur dans un programme C. Les mains dans le camboui

Cython est un logiciel permettant de faciliter l’écriture d’extensions C.

Convertit automatiquement du code python en code C Fournit une extension du langage python pour générer du code C plus efficace. Compatible openMP pour la parallélisation fine du code. pythran : Meme objectif que cython. Génère du C++

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Ecrire des extensions en Fortran

F2py est un ensemble d’outils permettant de construire des interfaces entre fortran et python. Fait partie du projet scipy, dépend de numpy.

Construire des modules codés en fortran utilisables en python

Appeller des fonctions python depuis un code fortran

Introduction

Le langage

Exécution d’un programme python

Types de données Fonctions de base

Définir ses propres fonctions Conclusions

Liste d’outils pour le calcul et l’analyse de données

Modules du projet Scipy

Intégration de code C et fortran

.

Conclusions

Python est un langage complet, facile à apprendre Apprentissage progressif:

Interface interactive pour tester /apprendre Langage de script pour la manipulation de fichiers Langage objet pour l’écriture de programmes complets / de bibliothèques Extension / Optimisation pour le calcul intensif Packages d’analyse numérique / statistique

Potentiel certain à remplacer R

Bon candidat pour l’apprentissage d’un nouveau langage :)



99