Apprendre python pour l’analyse de données

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 .
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
Autre utilisation de l’opérateur in, recherche:
|
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:
On peut accéder à une sous-chaine par tranchage (slicing):
|
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:
| >> output, S | ## | ajoute | un \n final |
| >> 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 :)