SlideShare une entreprise Scribd logo
from turing_machine import TuringMachine
initial_state = "init",
accepting_states = ["final"],
transition_function = {("init","0"):("init", "1", "R"),
("init","1"):("init", "0", "R"),
("init"," "):("final"," ", "N"),
}
final_states = ["final"]
t = TuringMachine("010011 ",
initial_state = "init",
final_states = final_states,
transition_function=transition_function)
print("Input on Tape:")
t.show_tape()
while not t.final():
t.step()
print("Result of the Turing machine calculation:")
t.show_tape()
Version
3.1.0
Université de Béchar
Laboratoire des Études Énergétiques en Zones Arides
Équipe Modélisation & Simulation des Systèmes
Cours réalisé par : Pr. TAMALI Mohammed,
http://mtamali.wordpress.com/
Université de Béchar | FS&T
(ENERGARID Lab./SimulIA)
Presentation
The University of Bechar was born in 1986 as the National Institutes of Higher
Education (INES) in 1992 it becomes University Center and on January 07, 2007, it
was officially declared as a University. Since then, many Research Teams have seen
the day. In 2011, The Laboratory for Energy Systems Studies Applied to Arid Zones
was run by a group of young and well motivated researchers (7 Research teams) to
solve real problems affecting arid zones, SimulIA Team is one of them in the same
laboratory. The Workload of SimulIA concern studies and applications of modeling
and simulation of systems in Arid Areas.
Research areas:
 Energy & Environment (Modeling & Simulation)
 Application of heat in arid zones
 Energy economy.
 Mapping and development of resources in arid zones.
 SIMULIA for the task in the short term, to develop the computer code for
modeling and simulation which can be accessed online.
Website of the laboratory team: http://energarid.wordpress.com/
2
 Introduction (Généralités & Historique).
 Elaboration d’un environnement logiciel Python
 (Installation, Personnalisation & Utilisation).
 Domaines d’utilisation
 Outils d’élaboration de code Python (IDE)
 Base de représentation des données (Eléments de base)
 Structure algorithmique du langage Python
 Matrices & Systèmes linéaires
 Systèmes non-linéaires
 Interpolation & approximation
 Intégration & Différentiation numérique
 Calcul parallèle
 Conclusion
Plan
3
Introduction (Généralités).
Les mathématiques appliquées et le calcul scientifique jouent un rôle croissant comme outils non
évitables pour l’élaboration de recherches scientifiques et dans la conception de processus
industriels. Le calcul scientifique reste pour toujours l’étape première de la voie du
développement culturel et technique d’un pays donné.
Par ailleurs, le niveau de complexité des systèmes, généralement manipulés par les êtres
humains que nous sommes, est très élevé à un niveau où toute avancée intellectuelle engendrera
des retombés au niveau industriel tant que tous les processus de l’économie en dépendent.
En contre partie, la majorité des produits technologiques sont juste la solution immédiate de bon
nombre de résolutions de requête de la vie courante. L'avènement de l'informatique et de ses
produits, les langages de programmation de tout bord, de l'Internet et des télécommunications, à
chacun ses infrastructures et ses protocoles, a révolutionné les méthodologies de travail des
équipes et laboratoires de recherches. Les langages de développement informatique des outils
et suites logiciels sont d’un grand secours aux travaux de modélisation et de simulation des
processus.
Les mathématiques appliquées et l'informatique sont les moyens de conception (Modélisation et
Simulation), plus encore, ils sont les vecteurs qui ont provoqué une amélioration nette dans les
pratiques de tous les jours et aussi dans la vitesse de mise en œuvre de moyens exploitables.
Les langage de programmation, comme le C/C++, le FORTRAN ou le Python ont joué un grand
rôle dans le cours de développement de beaucoup de procédés (Modélisation) et ont facilité la
compréhension de beaucoup phénomènes (Simulation). 4
Introduction (Historique).
Python est un langage intéressant pour sa facilité et sa richesse en possibilités d’utilisation. En
version de base, Python dispose de nombreuses fonctionnalités intégrées en standard.
Autour des aptitudes de base standard, Il est extensible par des modules de tout bord, qui sont
les contributions de développeurs dévoués à la cause de l’Open Source. Ce sont des
bibliothèques qui aident le développeur à travailler sur des projets particuliers. Plusieurs
bibliothèques peuvent ainsi être installées pour, par exemple, développer des interfaces
graphiques en Python (cas de tkinter).
Python est un langage de programmation, dont la première version est sortie en 1991. Créé par
Guido van Rossum, il a été porté du Macintosh, de son développeur, qui travaillait à cette époque
au Centrum voor Wiskunde en Informatica aux Pays-Bas, jusqu'à se voir associer une
organisation à but non lucratif particulièrement dévouée, la PSF (Python Software Foundation),
créée en 2001. Ce langage a été baptisé ainsi en hommage à la troupe de comiques les «Monty
Python».
5
Développeur Informaticien
Néerlandais (langage Python)
Guido van Rossum
31 janvier 1956 Monty Python est le nom d'une troupe célèbre
d'humoristes britanniques (1969).
Introduction (Logiciel Open Source vs. Propriétaire).
La PSF (Python Software Foundation), créée en 2001, appartient à Open Source Initiative, et à la
FSF (Free Software Foundation)
Un logiciel propriétaire, appelé parfois de manière militante logiciel privateur, ou encore logiciel
non libre, est un logiciel dont la duplication, la modification ou l'usage est limité.
La désignation Open Source ou ‘Code Source Ouvert’, s'applique aux logiciels dont la licence
respecte des critères précisément établis par l'Open Source Initiative, c'est-à-dire les possibilités
de libre redistribution, d'accès au code source et de création de travaux dérivés. Mis à la
disposition du grand public, ce code source est généralement le résultat d'une collaboration
entre développeurs.
6
Elaboration d’un environnement logiciel Python
Installation
Beaucoup de méthodologies sont valable pour développer un environnement compatible pour une programmation avec le
langage Python (Celui-ci est téléchargeable sous deux version 2.X ou 3.X, version de base qui ne sont pas forcement
totalement compatible). Le langage Python est utilisable sous différent système d’exploitation (Win, Linux/UNIX ou Mac OS).
Une autre alternative, encore plus interessante que la première
est d’installer le logiciel ANACONDA.
Avec l’un des éditeurs de scripts
7
Notre choix
Environnement
Notre choix
IDE
Elaboration d’un environnement logiciel Python
Installation
La plateforme ANACONDA installe tout le nécessaire (l’environnement PYTHON 3.X/2.X) et donnera accès aux possibilités
d’étendre l’installation aux modules PYTHON nécessaires pour le développement de calcul scientifique de l’ingénieur ou du
chercheur.
Les différents modules (librairies) nécessaire sont :
NUMPY : Analyse numérique & Matrices
SCIPY : Extension pour calcul scientifique
MATPLOTLIB : Dessin de courbe
SYMPY : calcul symbolique
NETWORKX : manipulation et gestion des graphes
PLOTLY : Librairie en ligne pour dessin de courbes
EVENTLET :
TKINTER : Librairie pour manipulation d’interface graphique
IPYTHON : Bibliothèque pour calcul scientifique
CYTHON : Interface pour environnement C/C++
JPYTHON : Interface pour environnement JAVA
JUPYTER : Editeur orienté navigateur
DJANGO-CMS : System de gestion de contenus
WIDGY : CMS utilisant le Framework Django.
…encore des milliers de modules.
8
Notre choix
Environnement
Notre choix
IDE
Elaboration d’un environnement logiciel Python
Installation : Assistant de l’installation de ANACONDA et de PYCHARM
La plateforme ANACONDA = {Python, Modules} L’IDE de programmation PYTHON, PyCharm
9
Notre choix
Environnement
Notre choix
De l’IDE
Elaboration d’un environnement logiciel Python
Personnalisation : Sous PyCharm, en mode TEREMINAL, nous ajoutons
les modules nécessaires à la plateforme ANACONDA .
Dans la fenêtre TERMINAL, nous utiliserons CONDA
H:PycharmProjectsessai>conda install mpi4py
Using Anaconda Cloud api site
https://api.anaconda.org
Fetching package metadata: ....
Solving package specifications: ..........
Package plan for installation in environment
h:Anaconda325:
The following packages will be downloaded:
package | build
mpi4py-2.0.0 | py35_0 264 KB
The following NEW packages will be INSTALLED:
mpi4py: 2.0.0-py35_0 (copy)
Proceed ([y]/n)? Y
Fetching packages ...
mpi4py-2.0.0-p 100% |###| Time: 0:00:01 169.26 kB/s
Extracting packages …
[COMPLETE]|##################################| 100%
Linking packages ...
[mpi4py]| | 0%
[COMPLETE]|##################################| 100%10
Fenêtre ABOUT
de PyCharm
Idée du jour
Commande
installation modules
Elaboration d’un environnement logiciel Python
Utilisation : Sous PyCharm, en mode TEREMINAL, nous ajoutons les
modules nécessaires à la plateforme ANACONDA .
Caractéristiques du langage script Python :
Avantages :
• Très riches librairies pour le calcul scientifique.
• Langage bien structuré, permettant d’écrire des
programmes lisibles ‘we code what we think’.
• D’autres librairies hors le cadre du calcul scientifique
(Gestion des services Web, Accès aux ports série, etc.)
• Graticiel ‘Open Source’, derrière une large communauté.
• Compacité du programme développé.
• Beaucoup d’alternatives pour l’édition (IDE).
Inconvénients:
• Environnement de développement moins.
• Pas tous les algorithmes qui peuvent être trouvés dans le
logiciel.
Python peut être utiliser sous deux modes, selon
l’interactivité escomptée.
1. Commande en ligne
2. Exécution de fichier script .py
11
Fenêtre ABOUT
de PyCharm
Elaboration d’un environnement logiciel Python
Utilisation : Sous PyCharm,.
Caractéristiques du langage script Python :
Python est un langage script informatique générique et
moderne.
• Langage Python intègre tous les types de données
(chaîne, réel, int), les contrôles, des collections de
données (listes, dictionnaires), et des modèles de flux,
etc.
• La bibliothèque standard intègre plusieurs Modules.
• Un grand nombre de modules spécialisés ou des
applications sont écrites en Python: protocoles web,
framework web, etc ... Ainsi que le calcul scientifique.
- Outils de développement (test automatique, génération de
documentation).
- et encore plus…
Python peut être utiliser sous deux modes, selon
l’interactivité escomptée.
1. Commande en ligne
2. Exécution de fichier script .py
12
Mode console
Python
Mode
programme (.py)
Elaboration d’un environnement logiciel Python
Utilisation : Sous Jupyter, Interface WEB pour Python.
Cette interface Web est facilement mise en œuvre par son
installation :
conda install jupyter (si Anaconda est installé)
Ou
pip install jupyter
Le lancement de l’interface est fait en invoquant :
Jupiter notebook
Ouvrir le navigateur et entrer l’adresse
http://127.0.0.1:8888.
Pour utiliser un autre PORT autre que 8888
On note : http://127.0.0.1:Nouveau_Port.
L’interface JUPITER est intuitive et facile à utiliser, ses
fonctionnalités sont :
• Déploiement sous protocole Internet d’aptitude de calcul
Python.
• Toute les possibilités de gestion des documents ‘Notebook’
sont offertes.
• Possibilités d’édition non limitées (LaTeX, HTML, Code, …)
• Exécution immédiate.
• Compatibilité avec la plupart des langages et scripts de
programmation (C/C++, Java, JavaScript, Julia, Python, R,
Octave, …)
• Offre accessibilité à Jupyter Drive via Google Drive.
• Options de Reporting avancées (HTML, LaTeX, PDF).
13
Exemple de
code avec son
exécution
Menu et barre
d’outils
Elaboration d’un environnement logiciel Python
Utilisation : Sous Jupyter, Interface WEB pour Python.
Les notebooks sont accessibles à partir de PyCharm.
Les notebooks sont des solutions de collaboration de préférences,
ils intègrent toute les fonctionnalités exigées par un chercheur
dans le domaine des sciences, humaines ou technologiques.
Organisation des documents, leur ouverture, édition ou mise à
jours se fait dans le même endroit sans aucune dépendance par
rapport à la machine, puisque les notebooks sont accessible en
ligne (Serveur, Ordinateur de bureau ou Périphérique mobile).
Les possibilités sont étendues ainsi qu’une documentation
abondante.
14
Graphique
3D
Exemple de Code
Python
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse des données (Panda)
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
15
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse des données (Panda)
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
import numpy as np
systeme = np.array([[1,2],[3,-4]])
valeur=np.array([[3],[1]])
sol=np.linalg.solve(systeme,valeur)
print("x=",sol[0,0]," et y=",sol[1,0])
x= 1.4 et y= 0.8
# Résolution de système linéaire A.X=b
>>> import numpy as np
>>> from scipy import linalg
>>> A = np.array([[1, 2], [3, 4]])
>>> A
array([[1, 2],[3, 4]])
>>> b = np.array([[5], [6]])
>>> b
array([[5],[6]])
>>> linalg.inv(A).dot(b) # slow
array([[-4. ],[ 4.5]])
>>> A.dot(linalg.inv(A).dot(b)) - b # Vérification
array([[8.88178420e-16],[2.66453526e-15]])
>>> np.linalg.solve(A, b) # fast
array([[-4. ],[ 4.5]])
>>> A.dot(np.linalg.solve(A, b)) - b # Vérification
array([[ 0.],[ 0.]])
Importation de la
librairie Numpy
16
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse des données (Panda)
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
17
import numpy as np
from scipy import signal, misc
import matplotlib.pyplot as plt
image = misc.face(gray=True).astype(np.float32)
derfilt = np.array([1.0, -2, 1.0], dtype=np.float32)
ck = signal.cspline2d(image, 8.0)
deriv = (signal.sepfir2d(ck, derfilt, [1]) +signal.sepfir2d(ck, [1], derfilt))
laplacian = np.array([[0,1,0], [1,-4,1], [0,1,0]], dtype=np.float32)
deriv2 = signal.convolve2d(ck,laplacian,mode=‘same',boundary='symm')
plt.figure()
plt.imshow(image)
plt.gray()
plt.title(‘Image original')
plt.show()
plt.figure()
plt.imshow(deriv)
plt.gray()
plt.title(‘sortie avec filtre spline')
plt.show()
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse des données (Panda)
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
from matplotlib.pyplot import figure, hold, plot, legend, draw
from numpy import linspace
import scipy.stats as stats
from numpy.random import randn
x = randn(100)
fig = figure()
ax = fig.add_subplot(111)
ax.hist(x, bins=30, label=’Empirical’)
xlim = ax.get_xlim()
ylim = ax.get_ylim()
pdfx = linspace(xlim[0], xlim[1], 200)
pdfy = stats.norm.pdf(pdfx)
pdfy = pdfy / pdfy.max() * ylim[1]
hold(True)
plot(pdfx, pdfy, ’r-’, label=’PDF’)
ax.set_ylim((ylim[0], 1.2 * ylim[1]))
legend()
hold(False)
draw()
18
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse des données (Panda, QtGraph)
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
19
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse sonore du coran
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D
Bioinformatique et manipulation du génome
Domaines d’utilisation
%matplotlib inline
from pylab import plot, show, title, xlabel, ylabel, subplot, savefig
from scipy import fft, arange, ifft
from numpy import sin, linspace, pi
from scipy.io.wavfile import read,write
def plotSpectru(y,Fs):
n = len(y) # lungime semnal
k = arange(n)
T = n/Fs
frq = k/T # two sides frequency range
frq = frq[range(n/2)] # one side frequency range
Y = fft(y)/n # fft computing and normalization
Y = Y[range(n/2)]
plot(frq,abs(Y),'r') # plotting the spectrum
xlabel('Freq (Hz)')
ylabel('|Y(freq)|')
Fs = 44100; # sampling rate
rate,data=read('fatiha.wav')
y=data
lungime=len(y)
timp=len(y)/44100.
t=linspace(0,timp,len(y))
subplot(2,1,1)
plot(t,y)
xlabel('Time')
ylabel('Amplitude')
subplot(2,1,2)
plotSpectru(y,Fs)
show()
20
Lecture de la
sourah
Code du traitement
audio
Spectre Amp|Fréq
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse sonore du coran
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle (MPI Python)
Théorie des graphes (Networkx)
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
21Exemple
de graphe
Fenêtre Aperçu
du bloc-note
Importation de la
librairie NetworkX
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse sonore du coran
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) # set board mode to Broadcom
GPIO.setup(17, GPIO.OUT) # set up pin 17
GPIO.setup(18, GPIO.OUT) # set up pin 18
GPIO.output(17, 1) # turn on pin 17
GPIO.output(18, 1) # turn on pin 18
Importation
librairie GPIO
Module
Galileo Gen 2
Module
RaspBerry PI 3
22
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse sonore du coran
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D (Python CAD, FreeCAD)
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
23
from OCC.STEPControl import STEPControl_Reader
from OCC.IFSelect import IFSelect_RetDone, IFSelect_ItemsByEntity
from OCC.Display.SimpleGui import init_display
step_reader = STEPControl_Reader()
status = step_reader.ReadFile('./models/wind_turbine.stp')
if status == IFSelect_RetDone: # check status
failsonly = False
step_reader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity)
step_reader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity)
ok = step_reader.TransferRoot(1)
_nbs = step_reader.NbShapes()
aResShape = step_reader.Shape(1)
else:
print("Error: can't read file.")
sys.exit(0)
display, start_display, add_menu, add_function_to_menu = init_display()
display.DisplayShape(aResShape, update=True)
start_display()
Importation
librairie OCC
Maillage Dauphin
Rendu du mât d’un
aérogénérateur
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse sonore du coran
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D (Python CAD, FreeCAD)
Bioinformatique et manipulation du génome
POO avec Python (Programmation
Orientée Objet)
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
class Rocket():
# Rocket simule une roquette pour un jeu,
# ou une simulation de physique.
def __init__(self):
# Each rocket has an (x,y) position.
self.x = 0
self.y = 0
def move_up(self):
# Incrémentation de la position y de la roquette.
self.y += 1
# Définir une ensemble de 5 roquettes, les stocker dans une liste.
my_rockets = []
for x in range(0,5):
new_rocket = Rocket()
my_rockets.append(new_rocket)
# A remarquer que chaque roquette est un objet à part entière.
for rocket in my_rockets:
print(rocket)
Définition d’une
nouvelle Classe
Instantiation
Méthode Constructeur
__init__
24
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse sonore du coran
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D (Python CAD, FreeCAD)
Bioinformatique et manipulation
du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
25
from Bio import SeqIO
for seq_record in SeqIO.parse("ls_orchid.gbk", "genbank"):
print(seq_record.id)
print(repr(seq_record.seq))
print(len(seq_record))
Z78533.1
Seq('CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGG...CGC',
IUPACAmbiguousDNA())
740
...
Z78439.1
Seq('CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACT...GCC',
IUPACAmbiguousDNA())
592
Sinon dans une Terminal Python
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_dna
>>> gene = Seq("GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA" + 
... "GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT" + 
... "AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT" + 
... "TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT" + 
... "AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA",
... generic_dna)
>>> gene.translate(table="Bacterial")
Seq('VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDH...HR*',
HasStopCodon(ExtendedIUPACProtein(), '*')
>>> gene.translate(table="Bacterial", to_stop=True)
Seq('VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDH...HHR',
ExtendedIUPACProtein())
Logo de
BioPython Séquence d’ADN
Importation
librairie BIO
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse sonore du coran
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D (Python CAD, FreeCAD)
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
26
# Installer à partir de PyPI
$ pip install mezzanine
# Instantier un projet
$ mezzanine-project monproject
$ cd monproject
# Instantier une Base de données
$ python manage.py createdb
# Lancer le serveur Web
$ python manage.py runserver
Installation en mode
commande
URL du site instantié
Version Mobile, Menu
Version Administration
Sites Web fait avec
Mezzanine
Version Normal
Les environnements de développement intégrés de code Python sont nombreux, des solutions propriétaires à celles portant le
label GPL.
Ils sont de trois grandes catégories :
Les applications bureaux (Desktop)
Les consoles de commande en ligne
Les interfaces orientées Web
Outils d’élaboration de code Python (IDE)
27
Les environnements de développement intégrés de code Python sont nombreux, des solutions propriétaires à celles portant le
label GPL.
Ils sont de trois grandes catégories :
Les applications bureaux (Desktop)
Les consoles de commande en ligne
Les interfaces orientées Web
Outils d’élaboration de code Python (IDE)
28
Les environnements de développement intégrés de code Python sont nombreux, des solutions propriétaires à celles portant le
label GPL.
Ils sont de trois grandes catégories :
Les applications bureaux (Desktop)
Les consoles de commande en ligne
Les interfaces orientées Web
Outils d’élaboration de code Python (IDE)
29
30
Nom de Symbole : Les noms de variables en Python peuvent contenir des caractères alphanumériques a-z, A-Z, 0-
9 et certains caractères spéciaux tel que _. Les noms de variables normales doivent commencer par une lettre.
Par convention, les noms de variables commencent par une lettre minuscule, et les noms de classe commencent par
une lettre majuscule. En outre, il y a un certain nombre de mots-clés Python qui ne peuvent pas être utilisés comme
noms de variables. Ces mots-clés sont les suivants:
and, as, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in,
is, lambda, not, or, pass, print, raise, return, try, while, with, yield
Affectation :
# assignment de variable
x = 1.0
my_variable = 12.2
type(x) #fonction TYPE retourne le type de la variable entre parenthèse
builtins.float
Verification de type :
x = 1.0
# vérifier si la variable est réelle
type(x) is float
isinstance(x, float)
True
z = complex(x)
print(z, type(z))
(1+0j) <class 'complex‘>
Base de représentation des données
31
Operateurs et comparaisons
Opérateurs arithmétiques +, -, *, /, // (division entière), '**' puissance.
3.0 // 2.0
1.0
# NB: operators puissance en python n’est pas ^, mais **
2 ** 2
4
Les opérateurs de comparaison sont >,<,>=,<=,==.
# objects identiques ?
x1 = x2 = [1,2]
x1 is x2
True
2 >= 2, 2 <= 2
(True, True)
Chaines de caractères, les liste et les dictionnaires
s = "Hello world"
type(s)
builtins.str
# length of the string: the number of characters
len(s)
11
# replace a substring in a string with somethign else
s2 = s.replace("world", "test")
print(s2)
Hello test
s[0]
'H'
Base de représentation des données
32
Chaines de caractères, les liste et les dictionnaires
s = "Hello world“
# replace a substring in a string with somethign else
s2 = s.replace("world", "test")
Hello test
print(s2)
s[0:5]
'Hello‘
s[0:5]
'Hello‘
s[:]
'Hello world‘
print("value = %f" % 1.0) # Formatage C des variables
value = 1.000000
s2 = "value1 = %.2f. value2 = %d" % (3.1415, 1.5)
print(s2)
value1 = 3.14. value2 = 1
Listes
l = [1,2,3,4]
print(type(l))
print(l)
<class 'list'>
[1, 2, 3, 4]
l = [1, 'a', 1.0, 1-1j] # peuvent être hétérogène
print(l)
[1, 'a', 1.0, (1-1j)]
Base de représentation des données
33
Listes
start = 10
stop = 30
step = 2
range(start, stop, step)
range(10, 30, 2)
list(range(start, stop, step))
[10, 12, 14, 16, 18, 20, 22, 24, 26, 28]
s2 = list(s)
S2
['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
# Tri de la liste
s2.sort()
print(s2)
[' ', 'H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
l = []
l.append("A")
l.append("d")
l.append("d")
print(l)
['A', 'd', 'd']
Tuples
Ce sont des variables comme les listes mais pas altérables
point = (10, 20)
print(point, type(point))
(10, 20) <class 'tuple'>
Base de représentation des données
34
Tuples
x, y = point
print("x =", x)
print("y =", y)
x = 10
y = 20
Dictionaries
params = {"parameter1" : 1.0, "parameter2" : 2.0, "parameter3" : 3.0,}
print(type(params))
print(params)
<class 'dict'>
f'parameter2': 2.0, 'parameter3': 3.0, 'parameter1': 1.0}
params["parameter1"] = "A"
params["parameter2"] = "B"
# Ajouter une nouvelle entrée
params["parameter4"] = "D"
print("paramètre = " + str(params["parameter1"]))
print("paramètre = " + str(params["parameter2"]))
print("paramètre = " + str(params["parameter3"]))
print("paramètre = " + str(params["parameter4"]))
paramètre = A
paramètre = B
paramètre = 3.0
paramètre = D
Base de représentation des données
35
36
Affectation & Contrôle conditionnel de flue
statement1 = False # C’est une affectation
statement2 = False
if statement1: # Test validé condition (statement1) est VRAIE
print("statement1 is True")
elif statement2: # Exécutée condition (statement2) est VRAIE
print("statement2 is True")
else: # Exécutée sinon
print("statement1 and statement2 are False")
Boucles
for x in [1,2,3]: # [1,2,3] peut être désigné par range(3) avec print(x+1)
print(x)
1
2
3
for word in ["scientific", "computing", "with", "python"]:
print(word) # condition de répétition dépendante du contenu de la liste
scientific
computing
with
python
l1 = [x**2 for x in range(0,5)] # à remarquer la compacité du Python
print(l1)
[0, 1, 4, 9, 16]
Base de représentation des données
37
Boucles
var = 0
while var != 1:
print " .... " # j‘écris mon programme ici
choix = raw_input("voulez vous recommencer ? ( o/n ) : ")
if choix == "n":
var = 1
else:
‘vous allez être renvoyé au début du programme’
X = y / 2
while x > 1:
If y % x == 0:
print y, ‘ est facteur de ’, x
break
x -= 1
else:
print y, ‘ est premier‘
L’utilisation de zip et map, peut s’avérée encore plus efficace
l1 = [1, 2, 3]
l2 = [4, 5, 6]
for (x, y) in zip(l1, l2):
print x, y, '--', x + y
1 4 -- 5
2 5 -- 7
3 6 -- 9
Base de représentation des données
38
s='0123456789'
print map(int, s)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Utilisation et
puissance de MAP
Utilisation de ZIP
Intervales
range(start, stop, step)
range(5, 10)
5 jusqu’à 10 (exclue) avec un pas de 1
range(0, 10, 3)
0, 3, 6, 9
range(-10, -100, -30)
-10, -40, -70
Test conditionnel binaire
x = 5
y = 10
if x > y:
print('x est grand que y')
else:
print(“x n’est pas grand que y”)
# Dans Python, on peut compliquer les chose
x = 5
y = 10
Z = 12
if z > x > y:
print(‘y est petit que x, et x est petit que z')
Base de représentation des données
39
Boucle avec test conditionnel binaire
# break, continue et else dans une boucle for
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, ‘est égal à', x, '*', n//x)
break
else:
print(n, ‘est premier')
# Utilisation de l’instruction continue
for num in range(2, 10):
if num % 2 == 0: # le symbole % désigne l’opération RESTE de la division
print(“Nombre paire trouvé ", num)
continue
print(“Nombre non premier ", num)
Base de représentation des données
40
Définition de fonction (procédure avec retour)
def fib(n): # Ecrire la suite de Fibonacci jusqu’à n
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
f = fib # désignation par référence f à la fonction fib
f(100)
0 1 1 2 3 5 8 13 21 34 55 89
# autre type de définition de fonction
def ask_ok(prompt, retries=4, complaint="Oui or Non, s’il vou plait !"):
while True:
ok = input(prompt)
if ok in (‘o', ‘oui', ‘Oui'):
return True
if ok in (‘n', 'no', 'non', ‘Non'):
return False
retries = retries - 1
if retries < 0:
raise OSError(‘Utilisateur non coopératif')
print(complaint)
Base de représentation des données
41
L’instruction lambda
def make_incrementeur(n):
return lambda x: x + n
f = make_incrementeur(42)
f(0)
42
f(1)
43
# un autre cas d’utilisation
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
pairs.sort(key=lambda pair: pair[1])
pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
Les annotations dans une fonction
# Les annotations définissent des messages de présentation
def f(chiken: str, eggs: str = 'eggs') -> str: # remarquer que la fonction est de type STR
print("Annotations:", f.__annotations__)
print("Arguments:", chiken, eggs)
return chiken + ' and ' + eggs
f('spam')
Annotations: {'chiken': <class 'str'>, 'return': <class 'str'>, 'eggs': <class 'str'>}
Arguments: spam eggs
'spam and eggs‘
Base de représentation des données
42
Les décorateurs python
# Notre décorateur
def decorate(func):
print u"Je suis dans la fonction 'decorate' et je décore '%s'." % func.__name__
print u"Exécution de la fonction '%s'." % func.__name__
return func
# Fonction cible utilisée avec DECORATOR
@decorate
def foobar(*args):
print ", ".join(args)
# Exemple d’appel de la fonction
foobar("A", "B", "C", "D")
Je suis dans la fonction 'decorate' et je décore 'foobar'.
Exécution de la fonction 'foobar'.
A, B, C, D
# Il est posible d’attribuer plusieurs décorateurs à une seule fonction.
@decorateur1
@decorateur2
def ma_fonction():
instructions
Base de représentation des données
43
Manipulation des listes
a = [66.25, 333, 333, 1, 1234.5]
print(a.count(333), a.count(66.25), a.count('x'))
2 1 0
a.insert(2, -1)
a.append(333)
a
[66.25, 333, -1, 333, 1, 1234.5, 333]
a.index(333)
1
a.remove(333)
a
[66.25, -1, 333, 1, 1234.5, 333]
a.reverse()
a
[333, 1234.5, 1, 333, -1, 66.25]
a.sort()
a
[-1, 1, 66.25, 333, 333, 1234.5]
a.pop()
1234.5
a
[-1, 1, 66.25, 333, 333]
Base de représentation des données
44
Puissance du langage Python
# L’ensemble des lignes suiantes peut être compacté par ce qui suit
combs = []
for x in [1,2,3]:
for y in [3,1,4]:
if x != y:
combs.append((x, y))
Combs
# Ou bien
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
# Donne le même résultat
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
# Calcul de la valeur de PI arrondie
from math import pi
[str(round(pi, i)) for i in range(1, 6)]
['3.1', '3.14', '3.142', '3.1416', '3.14159']
# Générateur avec utilisation de YIELD
def generateur():
yield "a"
yield "b"
yield "c“
i=generateur()
for v in i:
print v
a
b
c
Base de représentation des données
45
Les expressions régulières en python
# Les expressions régulière sont utilisées pour vérifier la conformité des expressions de
# chaines de caractères par rapport à un motif. Les symboles suivants sont utilisés :
# . ^ $ * + ? { } [ ]  | ( )
# . Le point correspond à n'importe quel caractère.
# ^ Indique un commencement de segment mais signifie aussi "contraire de"
# $ Fin de segment
# [xy] Une liste de segment possible. Exemple [abc] équivaut à : a, b ou c
# (x|y) Indique un choix multiple type (ps|ump) équivaut à "ps" OU "UMP"
# d le segment est composé uniquement de chiffre, ce qui équivaut à [0-9].
# D le segment n'est pas composé de chiffre, ce qui équivaut à [^0-9].
# s Un espace, ce qui équivaut à [ tnrfv].
# S Pas d'espace, ce qui équivaut à [^ tnrfv].
# w Présence alphanumérique, ce qui équivaut à [a-zA-Z0-9_].
# W Pas de présence alphanumérique [^a-zA-Z0-9_].
#  Est un caractère d'échappement
# T{2} Le T soit répété 2 fois
# TA{1,9} La séquence TA doit être présente de 1 à 9 fois
# TAM{,10} La séquence TAM n’existe pas ou répétée 10 fois
# LI{1,} La séquence LI doit être répétée au moins une fois.
Base de représentation des données
46
Les expressions régulières en python
# Utilisation des expressions régulière
import re
print re.match(r"GR(.)?S", "GRIS")
<_sre.SRE_Match object at 0x02019DE0>
Une utilisation fréquente, consiste en la validation des valeurs des emails saisis.
# Utilisation des expressions régulière
import re
mails = [‘mtamali@gmail.com’,’utmb@univ-bechar.dz’, ‘8@free.fr’, ‘@univ-bechar.dz’, ‘tamali@cdta’]
regex = re.compile(r’^[a-z0-9._-]+@[a-z0-9._-]+.[(com|fr|dz)]+’
for mail in mails:
if regex.match(mail) is not None:
print "Ce mail : %s est valide" % mail
else:
print "Erreur ce mail : %s est non valide" % mail
Ce mail : mtamali@gmail.com est valide
Ce mail : utmb@univ-bechar.dz est valide
Ce mail : 8@free.fr est valide
Erreur ce mail : @univ-bechar.dz est non valide
Erreur ce mail : tamali@cdta est non valide
Base de représentation des données
47
Les fichiers, Créer lire et écrire dans un fichier en python
# Utilisation des expressions régulière
fichier = open("donnees.txt", "r")
print fichier
<open file ‘donnees.txt', mode 'r' at 0x7ff6cf3fe4b0>
Le descripteur permet de renseigner la machine sur la manière avec laquelle le fichier est utilisé.
r, pour ouverture en mode READ.
w, pour ouverture en mode WRITE, chaque fois, le contenu du fichier est écrasé sinon python le crée.
a, pour ajout ‘APPEND’. Si le fichier n'existe pas python le crée.
b, Ouverture en mode Binaire.
t, Ouverture en mode Texte.
x, crée un nouveau fichier et l'ouvrir pour écriture
# procédure générale pour l’utilisation d’un fichier
fichier = open(‘donnees.txt’, "r")
print fichier.read()
fichier.close()
# L’instruction WITH peut être utilisée sans besoin de la fonction CLOSE
with open("data.txt", "r") as fichier:
print fichier.read()
Base de représentation des données
48
49
Le langage Python, est un langage script interprété. Le programme, portant l’une des extension .py, .pyw ou .pwc est
structuré selon le canevas suivant :
Les codifications
#!/usr/bin/python2.7
# -*-coding:encodage -*
Les imports des librairies
Les instructions
Le langage Python passe, pour être exécuté sur deux étapes, la première UNE PRECOMPILATION génération du code
machine et finalement un écriture en code machine exécutable (selon la machine).
L’environnement d’exécution des scripts écrits en Python, regroupe les avantages des TRADUCTEURS (travaille en ligne par
ligne) et les COMPILATEURS (puissance de la structure algorithmique).
La bibliothèque cx_Freeze sert à transformer les fichiers scripts Pyhon .py en exécutable .exe.
Structures algorithmique du python
50
51
Matrices & Systèmes linéaires
52
53
54
55
56
57
Le calcul scientifique
Références
L.-V. Bertallanfy, ‘General System Theory’, Edition MASSON, 1972.
58

Contenu connexe

Tendances

Introduction a la compilation Analyse Syntaxique - C3
Introduction a la compilation  Analyse Syntaxique - C3Introduction a la compilation  Analyse Syntaxique - C3
Introduction a la compilation Analyse Syntaxique - C3
Beligh HAMDI
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
Lilia Sfaxi
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
Haytam EL YOUSSFI
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
WajihBaghdadi1
 
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptxChapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
anisanima1
 
Conception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationConception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-location
ALALSYSE
 
Cours langage-c
Cours langage-cCours langage-c
Cours langage-c
Ahmed MSAFRI
 
Formation stm32
Formation stm32Formation stm32
Formation stm32
Hamza RAJHI
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
Jaouad Rachek
 
BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian
Lilia Sfaxi
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
Maya Medjdoub
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniShellmates
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
ECAM Brussels Engineering School
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
ABDESSELAM ARROU
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
Lilia Sfaxi
 
Ch3-les structures conditionnelles.pdf
Ch3-les structures conditionnelles.pdfCh3-les structures conditionnelles.pdf
Ch3-les structures conditionnelles.pdf
FadouaBouafifSamoud
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'images
Abdelouahed Abdou
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Abdelouahed Abdou
 

Tendances (20)

Introduction a la compilation Analyse Syntaxique - C3
Introduction a la compilation  Analyse Syntaxique - C3Introduction a la compilation  Analyse Syntaxique - C3
Introduction a la compilation Analyse Syntaxique - C3
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Prez PFE
Prez PFEPrez PFE
Prez PFE
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptxChapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
 
Conception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationConception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-location
 
Cours langage-c
Cours langage-cCours langage-c
Cours langage-c
 
Formation stm32
Formation stm32Formation stm32
Formation stm32
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Sql3
Sql3Sql3
Sql3
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Ch3-les structures conditionnelles.pdf
Ch3-les structures conditionnelles.pdfCh3-les structures conditionnelles.pdf
Ch3-les structures conditionnelles.pdf
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'images
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
 

En vedette

Mon CV
Mon CVMon CV
Mon CV
Julie Diep
 
Etude innovation 2012 - Havas Media
Etude innovation 2012 - Havas MediaEtude innovation 2012 - Havas Media
Etude innovation 2012 - Havas Media
Romain Fonnier
 
Management de l'entreprise 2.0
Management de l'entreprise 2.0 Management de l'entreprise 2.0
Management de l'entreprise 2.0
Prof. Jacques Folon (Ph.D)
 
Conférence Université Paris Dauphine - Stratégies de marques et personal bran...
Conférence Université Paris Dauphine - Stratégies de marques et personal bran...Conférence Université Paris Dauphine - Stratégies de marques et personal bran...
Conférence Université Paris Dauphine - Stratégies de marques et personal bran...
Alban Jarry
 
Plaquette produits fauteuil acapulco
Plaquette produits fauteuil acapulcoPlaquette produits fauteuil acapulco
Plaquette produits fauteuil acapulcoJulien ADAM
 
Comment développer la visibilité de mon commerce sur le web ?
Comment développer la visibilité de mon commerce sur le web  ?Comment développer la visibilité de mon commerce sur le web  ?
Comment développer la visibilité de mon commerce sur le web ?
Voyelle Voyelle
 
Think Digital groupe de réflexion édition numérique session 2 : Alain Pierrot...
Think Digital groupe de réflexion édition numérique session 2 : Alain Pierrot...Think Digital groupe de réflexion édition numérique session 2 : Alain Pierrot...
Think Digital groupe de réflexion édition numérique session 2 : Alain Pierrot...Jean-Baptiste Soufron
 
BOQA - FR - Catalogue 2016
BOQA - FR - Catalogue 2016BOQA - FR - Catalogue 2016
BOQA - FR - Catalogue 2016Nicolas Garet
 
Anti viraux et immunomodulateurs.ppt
Anti viraux et immunomodulateurs.pptAnti viraux et immunomodulateurs.ppt
Anti viraux et immunomodulateurs.ppt
odeckmyn
 
Rapport de stage : Étudier le principe de fonctionnement des capteurs de régu...
Rapport de stage : Étudier le principe de fonctionnement des capteurs de régu...Rapport de stage : Étudier le principe de fonctionnement des capteurs de régu...
Rapport de stage : Étudier le principe de fonctionnement des capteurs de régu...
Abdo07
 
Presentación TT Javier Calvo
Presentación TT Javier CalvoPresentación TT Javier Calvo
Presentación TT Javier Calvo
eiciUV
 
Sergiocastillolaclo2008
Sergiocastillolaclo2008Sergiocastillolaclo2008
Sergiocastillolaclo2008
Sergio Luis Castillo Valerio
 
OA
OAOA
Oracle Forms
Oracle FormsOracle Forms
Oracle Forms
henryjzbl
 
Les langages de programmation sont trop compliqués
Les langages de programmation sont trop compliquésLes langages de programmation sont trop compliqués
Les langages de programmation sont trop compliquésmercury_wood
 
ROANAVi: Repositório de Objetos de Aprendizagem do NAV
ROANAVi: Repositório de Objetos de Aprendizagem do NAVROANAVi: Repositório de Objetos de Aprendizagem do NAV
ROANAVi: Repositório de Objetos de Aprendizagem do NAV
Isaac Marinho
 
2009 Présentation préparé par un citoyen a Sanimax
2009 Présentation préparé par un citoyen a Sanimax 2009 Présentation préparé par un citoyen a Sanimax
2009 Présentation préparé par un citoyen a Sanimax
CleanUpSanimax
 

En vedette (20)

Mon CV
Mon CVMon CV
Mon CV
 
Etude innovation 2012 - Havas Media
Etude innovation 2012 - Havas MediaEtude innovation 2012 - Havas Media
Etude innovation 2012 - Havas Media
 
Management de l'entreprise 2.0
Management de l'entreprise 2.0 Management de l'entreprise 2.0
Management de l'entreprise 2.0
 
Conférence Université Paris Dauphine - Stratégies de marques et personal bran...
Conférence Université Paris Dauphine - Stratégies de marques et personal bran...Conférence Université Paris Dauphine - Stratégies de marques et personal bran...
Conférence Université Paris Dauphine - Stratégies de marques et personal bran...
 
faroT
faroTfaroT
faroT
 
Plaquette produits fauteuil acapulco
Plaquette produits fauteuil acapulcoPlaquette produits fauteuil acapulco
Plaquette produits fauteuil acapulco
 
La Chaine Respiratoire
La Chaine RespiratoireLa Chaine Respiratoire
La Chaine Respiratoire
 
Comment développer la visibilité de mon commerce sur le web ?
Comment développer la visibilité de mon commerce sur le web  ?Comment développer la visibilité de mon commerce sur le web  ?
Comment développer la visibilité de mon commerce sur le web ?
 
Think Digital groupe de réflexion édition numérique session 2 : Alain Pierrot...
Think Digital groupe de réflexion édition numérique session 2 : Alain Pierrot...Think Digital groupe de réflexion édition numérique session 2 : Alain Pierrot...
Think Digital groupe de réflexion édition numérique session 2 : Alain Pierrot...
 
Rapport de stage
Rapport de stageRapport de stage
Rapport de stage
 
BOQA - FR - Catalogue 2016
BOQA - FR - Catalogue 2016BOQA - FR - Catalogue 2016
BOQA - FR - Catalogue 2016
 
Anti viraux et immunomodulateurs.ppt
Anti viraux et immunomodulateurs.pptAnti viraux et immunomodulateurs.ppt
Anti viraux et immunomodulateurs.ppt
 
Rapport de stage : Étudier le principe de fonctionnement des capteurs de régu...
Rapport de stage : Étudier le principe de fonctionnement des capteurs de régu...Rapport de stage : Étudier le principe de fonctionnement des capteurs de régu...
Rapport de stage : Étudier le principe de fonctionnement des capteurs de régu...
 
Presentación TT Javier Calvo
Presentación TT Javier CalvoPresentación TT Javier Calvo
Presentación TT Javier Calvo
 
Sergiocastillolaclo2008
Sergiocastillolaclo2008Sergiocastillolaclo2008
Sergiocastillolaclo2008
 
OA
OAOA
OA
 
Oracle Forms
Oracle FormsOracle Forms
Oracle Forms
 
Les langages de programmation sont trop compliqués
Les langages de programmation sont trop compliquésLes langages de programmation sont trop compliqués
Les langages de programmation sont trop compliqués
 
ROANAVi: Repositório de Objetos de Aprendizagem do NAV
ROANAVi: Repositório de Objetos de Aprendizagem do NAVROANAVi: Repositório de Objetos de Aprendizagem do NAV
ROANAVi: Repositório de Objetos de Aprendizagem do NAV
 
2009 Présentation préparé par un citoyen a Sanimax
2009 Présentation préparé par un citoyen a Sanimax 2009 Présentation préparé par un citoyen a Sanimax
2009 Présentation préparé par un citoyen a Sanimax
 

Similaire à Chap XIII : calcul scientifique avec python

découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspects
Thierry Gayet
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Emeric Tapachès
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
Patrick MOREAU
 
Support Formation Samsung - Python - Session 1 - 2022.pptx
Support Formation Samsung - Python - Session 1 - 2022.pptxSupport Formation Samsung - Python - Session 1 - 2022.pptx
Support Formation Samsung - Python - Session 1 - 2022.pptx
bpmana
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
Johan Moreau
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
OlyvierNzighou1
 
Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptx
OlyvierNzighou1
 
Rapport de projet shell
Rapport de projet shellRapport de projet shell
Rapport de projet shell
Bilal ZIANE
 
Creation de cluster (Master et deux slave ) nfs, htcondor, mpi
Creation de cluster (Master et deux slave ) nfs, htcondor, mpiCreation de cluster (Master et deux slave ) nfs, htcondor, mpi
Creation de cluster (Master et deux slave ) nfs, htcondor, mpi
Khalid EDAIG
 
Pourquoi linux
Pourquoi linuxPourquoi linux
Machine-learning-FR.pdf
Machine-learning-FR.pdfMachine-learning-FR.pdf
Machine-learning-FR.pdf
MBarakOUROAKONDO
 
Inria - Catalogue logiciels
Inria - Catalogue logicielsInria - Catalogue logiciels
Inria - Catalogue logiciels
Inria
 
Cours SE linux
Cours SE linuxCours SE linux
Cours SE linux
Idriss22
 
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Smile I.T is open
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à Linux
Bruno Cornec
 
Programmation en Python CPGE sup management
Programmation en Python CPGE sup managementProgrammation en Python CPGE sup management
Programmation en Python CPGE sup management
OlyvierNzighou1
 
Theme1 (1)
Theme1 (1)Theme1 (1)
Theme1 (1)salmazen
 
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgDévelopper des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Romain Boman
 
Business modèles pour l'Open Source
Business modèles pour l'Open SourceBusiness modèles pour l'Open Source
Business modèles pour l'Open Source
alaprevote
 
Architecture hétérogène au service de l'IoT industriel ?
Architecture hétérogène au service de l'IoT industriel ?Architecture hétérogène au service de l'IoT industriel ?
Architecture hétérogène au service de l'IoT industriel ?
Pierre-jean Texier
 

Similaire à Chap XIII : calcul scientifique avec python (20)

découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspects
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
 
Support Formation Samsung - Python - Session 1 - 2022.pptx
Support Formation Samsung - Python - Session 1 - 2022.pptxSupport Formation Samsung - Python - Session 1 - 2022.pptx
Support Formation Samsung - Python - Session 1 - 2022.pptx
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
 
Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptx
 
Rapport de projet shell
Rapport de projet shellRapport de projet shell
Rapport de projet shell
 
Creation de cluster (Master et deux slave ) nfs, htcondor, mpi
Creation de cluster (Master et deux slave ) nfs, htcondor, mpiCreation de cluster (Master et deux slave ) nfs, htcondor, mpi
Creation de cluster (Master et deux slave ) nfs, htcondor, mpi
 
Pourquoi linux
Pourquoi linuxPourquoi linux
Pourquoi linux
 
Machine-learning-FR.pdf
Machine-learning-FR.pdfMachine-learning-FR.pdf
Machine-learning-FR.pdf
 
Inria - Catalogue logiciels
Inria - Catalogue logicielsInria - Catalogue logiciels
Inria - Catalogue logiciels
 
Cours SE linux
Cours SE linuxCours SE linux
Cours SE linux
 
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à Linux
 
Programmation en Python CPGE sup management
Programmation en Python CPGE sup managementProgrammation en Python CPGE sup management
Programmation en Python CPGE sup management
 
Theme1 (1)
Theme1 (1)Theme1 (1)
Theme1 (1)
 
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgDévelopper des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
 
Business modèles pour l'Open Source
Business modèles pour l'Open SourceBusiness modèles pour l'Open Source
Business modèles pour l'Open Source
 
Architecture hétérogène au service de l'IoT industriel ?
Architecture hétérogène au service de l'IoT industriel ?Architecture hétérogène au service de l'IoT industriel ?
Architecture hétérogène au service de l'IoT industriel ?
 

Plus de Mohammed TAMALI

Chap XVI-RedactionMemoire.pdf
Chap XVI-RedactionMemoire.pdfChap XVI-RedactionMemoire.pdf
Chap XVI-RedactionMemoire.pdf
Mohammed TAMALI
 
Chap XI-Optimisation.pdf
Chap XI-Optimisation.pdfChap XI-Optimisation.pdf
Chap XI-Optimisation.pdf
Mohammed TAMALI
 
Outils GPL de Modélisation & Simulation
Outils GPL de Modélisation & SimulationOutils GPL de Modélisation & Simulation
Outils GPL de Modélisation & Simulation
Mohammed TAMALI
 
Chap XVI - redaction mémoire
Chap XVI - redaction mémoireChap XVI - redaction mémoire
Chap XVI - redaction mémoire
Mohammed TAMALI
 
Chap VI 1-Elements de Pratique des SIG sous QGIS
Chap VI 1-Elements de Pratique des SIG sous QGISChap VI 1-Elements de Pratique des SIG sous QGIS
Chap VI 1-Elements de Pratique des SIG sous QGIS
Mohammed TAMALI
 
Chap VI SIG, Système d'Information Géographique, les bases
Chap VI SIG, Système d'Information Géographique, les basesChap VI SIG, Système d'Information Géographique, les bases
Chap VI SIG, Système d'Information Géographique, les bases
Mohammed TAMALI
 
Informatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TPInformatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TP
Mohammed TAMALI
 
Informatique pour école de Médecine Cours : Concepts de bases
Informatique pour école de Médecine Cours : Concepts de basesInformatique pour école de Médecine Cours : Concepts de bases
Informatique pour école de Médecine Cours : Concepts de bases
Mohammed TAMALI
 
Chap XIV : Calcul parallèle (Fondements & Principe d'utilisation)
Chap XIV : Calcul parallèle (Fondements & Principe d'utilisation)Chap XIV : Calcul parallèle (Fondements & Principe d'utilisation)
Chap XIV : Calcul parallèle (Fondements & Principe d'utilisation)
Mohammed TAMALI
 
Universitaire, Intellectuel & Instruit
Universitaire, Intellectuel & InstruitUniversitaire, Intellectuel & Instruit
Universitaire, Intellectuel & Instruit
Mohammed TAMALI
 
Analyse Numérique – TP
Analyse Numérique – TP Analyse Numérique – TP
Analyse Numérique – TP
Mohammed TAMALI
 
Chap XII Analyse Numerique
Chap XII Analyse NumeriqueChap XII Analyse Numerique
Chap XII Analyse Numerique
Mohammed TAMALI
 
ÉTUDE ET DIMENTIONNEMENT D’UN SUIVEUR SOLAIRE POUR LA GÉNÉRATION D’ÉNERGIE PV
ÉTUDE ET DIMENTIONNEMENT D’UN SUIVEUR SOLAIRE POUR LA GÉNÉRATION D’ÉNERGIE PVÉTUDE ET DIMENTIONNEMENT D’UN SUIVEUR SOLAIRE POUR LA GÉNÉRATION D’ÉNERGIE PV
ÉTUDE ET DIMENTIONNEMENT D’UN SUIVEUR SOLAIRE POUR LA GÉNÉRATION D’ÉNERGIE PV
Mohammed TAMALI
 
Chap VI SIG-Travaux Pratiques
Chap VI SIG-Travaux PratiquesChap VI SIG-Travaux Pratiques
Chap VI SIG-Travaux Pratiques
Mohammed TAMALI
 
Examen Master CCV : Méthode et Plan d'Expériences
Examen Master CCV : Méthode et Plan d'ExpériencesExamen Master CCV : Méthode et Plan d'Expériences
Examen Master CCV : Méthode et Plan d'Expériences
Mohammed TAMALI
 
Sipe12 : Pour une didactique BIO (Pédagogie & Efficaité energetique)
Sipe12 : Pour une didactique BIO (Pédagogie & Efficaité energetique)Sipe12 : Pour une didactique BIO (Pédagogie & Efficaité energetique)
Sipe12 : Pour une didactique BIO (Pédagogie & Efficaité energetique)
Mohammed TAMALI
 
CV Updated 2015
CV Updated 2015CV Updated 2015
CV Updated 2015
Mohammed TAMALI
 
Chap XI : Outils de Simulation des modes opératoires (Plans d’expériences)
Chap XI : Outils de Simulation des modes opératoires (Plans d’expériences)Chap XI : Outils de Simulation des modes opératoires (Plans d’expériences)
Chap XI : Outils de Simulation des modes opératoires (Plans d’expériences)
Mohammed TAMALI
 
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
Mohammed TAMALI
 
Je TIC au passé, présent et au futur, Journée du 23/12/2014
Je TIC au passé,  présent et au futur, Journée du 23/12/2014Je TIC au passé,  présent et au futur, Journée du 23/12/2014
Je TIC au passé, présent et au futur, Journée du 23/12/2014
Mohammed TAMALI
 

Plus de Mohammed TAMALI (20)

Chap XVI-RedactionMemoire.pdf
Chap XVI-RedactionMemoire.pdfChap XVI-RedactionMemoire.pdf
Chap XVI-RedactionMemoire.pdf
 
Chap XI-Optimisation.pdf
Chap XI-Optimisation.pdfChap XI-Optimisation.pdf
Chap XI-Optimisation.pdf
 
Outils GPL de Modélisation & Simulation
Outils GPL de Modélisation & SimulationOutils GPL de Modélisation & Simulation
Outils GPL de Modélisation & Simulation
 
Chap XVI - redaction mémoire
Chap XVI - redaction mémoireChap XVI - redaction mémoire
Chap XVI - redaction mémoire
 
Chap VI 1-Elements de Pratique des SIG sous QGIS
Chap VI 1-Elements de Pratique des SIG sous QGISChap VI 1-Elements de Pratique des SIG sous QGIS
Chap VI 1-Elements de Pratique des SIG sous QGIS
 
Chap VI SIG, Système d'Information Géographique, les bases
Chap VI SIG, Système d'Information Géographique, les basesChap VI SIG, Système d'Information Géographique, les bases
Chap VI SIG, Système d'Information Géographique, les bases
 
Informatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TPInformatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TP
 
Informatique pour école de Médecine Cours : Concepts de bases
Informatique pour école de Médecine Cours : Concepts de basesInformatique pour école de Médecine Cours : Concepts de bases
Informatique pour école de Médecine Cours : Concepts de bases
 
Chap XIV : Calcul parallèle (Fondements & Principe d'utilisation)
Chap XIV : Calcul parallèle (Fondements & Principe d'utilisation)Chap XIV : Calcul parallèle (Fondements & Principe d'utilisation)
Chap XIV : Calcul parallèle (Fondements & Principe d'utilisation)
 
Universitaire, Intellectuel & Instruit
Universitaire, Intellectuel & InstruitUniversitaire, Intellectuel & Instruit
Universitaire, Intellectuel & Instruit
 
Analyse Numérique – TP
Analyse Numérique – TP Analyse Numérique – TP
Analyse Numérique – TP
 
Chap XII Analyse Numerique
Chap XII Analyse NumeriqueChap XII Analyse Numerique
Chap XII Analyse Numerique
 
ÉTUDE ET DIMENTIONNEMENT D’UN SUIVEUR SOLAIRE POUR LA GÉNÉRATION D’ÉNERGIE PV
ÉTUDE ET DIMENTIONNEMENT D’UN SUIVEUR SOLAIRE POUR LA GÉNÉRATION D’ÉNERGIE PVÉTUDE ET DIMENTIONNEMENT D’UN SUIVEUR SOLAIRE POUR LA GÉNÉRATION D’ÉNERGIE PV
ÉTUDE ET DIMENTIONNEMENT D’UN SUIVEUR SOLAIRE POUR LA GÉNÉRATION D’ÉNERGIE PV
 
Chap VI SIG-Travaux Pratiques
Chap VI SIG-Travaux PratiquesChap VI SIG-Travaux Pratiques
Chap VI SIG-Travaux Pratiques
 
Examen Master CCV : Méthode et Plan d'Expériences
Examen Master CCV : Méthode et Plan d'ExpériencesExamen Master CCV : Méthode et Plan d'Expériences
Examen Master CCV : Méthode et Plan d'Expériences
 
Sipe12 : Pour une didactique BIO (Pédagogie & Efficaité energetique)
Sipe12 : Pour une didactique BIO (Pédagogie & Efficaité energetique)Sipe12 : Pour une didactique BIO (Pédagogie & Efficaité energetique)
Sipe12 : Pour une didactique BIO (Pédagogie & Efficaité energetique)
 
CV Updated 2015
CV Updated 2015CV Updated 2015
CV Updated 2015
 
Chap XI : Outils de Simulation des modes opératoires (Plans d’expériences)
Chap XI : Outils de Simulation des modes opératoires (Plans d’expériences)Chap XI : Outils de Simulation des modes opératoires (Plans d’expériences)
Chap XI : Outils de Simulation des modes opératoires (Plans d’expériences)
 
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
Chap10 : Outils de Simulation Cas des CAD 3D Concepts de base & fondements.
 
Je TIC au passé, présent et au futur, Journée du 23/12/2014
Je TIC au passé,  présent et au futur, Journée du 23/12/2014Je TIC au passé,  présent et au futur, Journée du 23/12/2014
Je TIC au passé, présent et au futur, Journée du 23/12/2014
 

Chap XIII : calcul scientifique avec python

  • 1. from turing_machine import TuringMachine initial_state = "init", accepting_states = ["final"], transition_function = {("init","0"):("init", "1", "R"), ("init","1"):("init", "0", "R"), ("init"," "):("final"," ", "N"), } final_states = ["final"] t = TuringMachine("010011 ", initial_state = "init", final_states = final_states, transition_function=transition_function) print("Input on Tape:") t.show_tape() while not t.final(): t.step() print("Result of the Turing machine calculation:") t.show_tape() Version 3.1.0 Université de Béchar Laboratoire des Études Énergétiques en Zones Arides Équipe Modélisation & Simulation des Systèmes Cours réalisé par : Pr. TAMALI Mohammed, http://mtamali.wordpress.com/ Université de Béchar | FS&T (ENERGARID Lab./SimulIA)
  • 2. Presentation The University of Bechar was born in 1986 as the National Institutes of Higher Education (INES) in 1992 it becomes University Center and on January 07, 2007, it was officially declared as a University. Since then, many Research Teams have seen the day. In 2011, The Laboratory for Energy Systems Studies Applied to Arid Zones was run by a group of young and well motivated researchers (7 Research teams) to solve real problems affecting arid zones, SimulIA Team is one of them in the same laboratory. The Workload of SimulIA concern studies and applications of modeling and simulation of systems in Arid Areas. Research areas:  Energy & Environment (Modeling & Simulation)  Application of heat in arid zones  Energy economy.  Mapping and development of resources in arid zones.  SIMULIA for the task in the short term, to develop the computer code for modeling and simulation which can be accessed online. Website of the laboratory team: http://energarid.wordpress.com/ 2
  • 3.  Introduction (Généralités & Historique).  Elaboration d’un environnement logiciel Python  (Installation, Personnalisation & Utilisation).  Domaines d’utilisation  Outils d’élaboration de code Python (IDE)  Base de représentation des données (Eléments de base)  Structure algorithmique du langage Python  Matrices & Systèmes linéaires  Systèmes non-linéaires  Interpolation & approximation  Intégration & Différentiation numérique  Calcul parallèle  Conclusion Plan 3
  • 4. Introduction (Généralités). Les mathématiques appliquées et le calcul scientifique jouent un rôle croissant comme outils non évitables pour l’élaboration de recherches scientifiques et dans la conception de processus industriels. Le calcul scientifique reste pour toujours l’étape première de la voie du développement culturel et technique d’un pays donné. Par ailleurs, le niveau de complexité des systèmes, généralement manipulés par les êtres humains que nous sommes, est très élevé à un niveau où toute avancée intellectuelle engendrera des retombés au niveau industriel tant que tous les processus de l’économie en dépendent. En contre partie, la majorité des produits technologiques sont juste la solution immédiate de bon nombre de résolutions de requête de la vie courante. L'avènement de l'informatique et de ses produits, les langages de programmation de tout bord, de l'Internet et des télécommunications, à chacun ses infrastructures et ses protocoles, a révolutionné les méthodologies de travail des équipes et laboratoires de recherches. Les langages de développement informatique des outils et suites logiciels sont d’un grand secours aux travaux de modélisation et de simulation des processus. Les mathématiques appliquées et l'informatique sont les moyens de conception (Modélisation et Simulation), plus encore, ils sont les vecteurs qui ont provoqué une amélioration nette dans les pratiques de tous les jours et aussi dans la vitesse de mise en œuvre de moyens exploitables. Les langage de programmation, comme le C/C++, le FORTRAN ou le Python ont joué un grand rôle dans le cours de développement de beaucoup de procédés (Modélisation) et ont facilité la compréhension de beaucoup phénomènes (Simulation). 4
  • 5. Introduction (Historique). Python est un langage intéressant pour sa facilité et sa richesse en possibilités d’utilisation. En version de base, Python dispose de nombreuses fonctionnalités intégrées en standard. Autour des aptitudes de base standard, Il est extensible par des modules de tout bord, qui sont les contributions de développeurs dévoués à la cause de l’Open Source. Ce sont des bibliothèques qui aident le développeur à travailler sur des projets particuliers. Plusieurs bibliothèques peuvent ainsi être installées pour, par exemple, développer des interfaces graphiques en Python (cas de tkinter). Python est un langage de programmation, dont la première version est sortie en 1991. Créé par Guido van Rossum, il a été porté du Macintosh, de son développeur, qui travaillait à cette époque au Centrum voor Wiskunde en Informatica aux Pays-Bas, jusqu'à se voir associer une organisation à but non lucratif particulièrement dévouée, la PSF (Python Software Foundation), créée en 2001. Ce langage a été baptisé ainsi en hommage à la troupe de comiques les «Monty Python». 5 Développeur Informaticien Néerlandais (langage Python) Guido van Rossum 31 janvier 1956 Monty Python est le nom d'une troupe célèbre d'humoristes britanniques (1969).
  • 6. Introduction (Logiciel Open Source vs. Propriétaire). La PSF (Python Software Foundation), créée en 2001, appartient à Open Source Initiative, et à la FSF (Free Software Foundation) Un logiciel propriétaire, appelé parfois de manière militante logiciel privateur, ou encore logiciel non libre, est un logiciel dont la duplication, la modification ou l'usage est limité. La désignation Open Source ou ‘Code Source Ouvert’, s'applique aux logiciels dont la licence respecte des critères précisément établis par l'Open Source Initiative, c'est-à-dire les possibilités de libre redistribution, d'accès au code source et de création de travaux dérivés. Mis à la disposition du grand public, ce code source est généralement le résultat d'une collaboration entre développeurs. 6
  • 7. Elaboration d’un environnement logiciel Python Installation Beaucoup de méthodologies sont valable pour développer un environnement compatible pour une programmation avec le langage Python (Celui-ci est téléchargeable sous deux version 2.X ou 3.X, version de base qui ne sont pas forcement totalement compatible). Le langage Python est utilisable sous différent système d’exploitation (Win, Linux/UNIX ou Mac OS). Une autre alternative, encore plus interessante que la première est d’installer le logiciel ANACONDA. Avec l’un des éditeurs de scripts 7 Notre choix Environnement Notre choix IDE
  • 8. Elaboration d’un environnement logiciel Python Installation La plateforme ANACONDA installe tout le nécessaire (l’environnement PYTHON 3.X/2.X) et donnera accès aux possibilités d’étendre l’installation aux modules PYTHON nécessaires pour le développement de calcul scientifique de l’ingénieur ou du chercheur. Les différents modules (librairies) nécessaire sont : NUMPY : Analyse numérique & Matrices SCIPY : Extension pour calcul scientifique MATPLOTLIB : Dessin de courbe SYMPY : calcul symbolique NETWORKX : manipulation et gestion des graphes PLOTLY : Librairie en ligne pour dessin de courbes EVENTLET : TKINTER : Librairie pour manipulation d’interface graphique IPYTHON : Bibliothèque pour calcul scientifique CYTHON : Interface pour environnement C/C++ JPYTHON : Interface pour environnement JAVA JUPYTER : Editeur orienté navigateur DJANGO-CMS : System de gestion de contenus WIDGY : CMS utilisant le Framework Django. …encore des milliers de modules. 8 Notre choix Environnement Notre choix IDE
  • 9. Elaboration d’un environnement logiciel Python Installation : Assistant de l’installation de ANACONDA et de PYCHARM La plateforme ANACONDA = {Python, Modules} L’IDE de programmation PYTHON, PyCharm 9 Notre choix Environnement Notre choix De l’IDE
  • 10. Elaboration d’un environnement logiciel Python Personnalisation : Sous PyCharm, en mode TEREMINAL, nous ajoutons les modules nécessaires à la plateforme ANACONDA . Dans la fenêtre TERMINAL, nous utiliserons CONDA H:PycharmProjectsessai>conda install mpi4py Using Anaconda Cloud api site https://api.anaconda.org Fetching package metadata: .... Solving package specifications: .......... Package plan for installation in environment h:Anaconda325: The following packages will be downloaded: package | build mpi4py-2.0.0 | py35_0 264 KB The following NEW packages will be INSTALLED: mpi4py: 2.0.0-py35_0 (copy) Proceed ([y]/n)? Y Fetching packages ... mpi4py-2.0.0-p 100% |###| Time: 0:00:01 169.26 kB/s Extracting packages … [COMPLETE]|##################################| 100% Linking packages ... [mpi4py]| | 0% [COMPLETE]|##################################| 100%10 Fenêtre ABOUT de PyCharm Idée du jour Commande installation modules
  • 11. Elaboration d’un environnement logiciel Python Utilisation : Sous PyCharm, en mode TEREMINAL, nous ajoutons les modules nécessaires à la plateforme ANACONDA . Caractéristiques du langage script Python : Avantages : • Très riches librairies pour le calcul scientifique. • Langage bien structuré, permettant d’écrire des programmes lisibles ‘we code what we think’. • D’autres librairies hors le cadre du calcul scientifique (Gestion des services Web, Accès aux ports série, etc.) • Graticiel ‘Open Source’, derrière une large communauté. • Compacité du programme développé. • Beaucoup d’alternatives pour l’édition (IDE). Inconvénients: • Environnement de développement moins. • Pas tous les algorithmes qui peuvent être trouvés dans le logiciel. Python peut être utiliser sous deux modes, selon l’interactivité escomptée. 1. Commande en ligne 2. Exécution de fichier script .py 11 Fenêtre ABOUT de PyCharm
  • 12. Elaboration d’un environnement logiciel Python Utilisation : Sous PyCharm,. Caractéristiques du langage script Python : Python est un langage script informatique générique et moderne. • Langage Python intègre tous les types de données (chaîne, réel, int), les contrôles, des collections de données (listes, dictionnaires), et des modèles de flux, etc. • La bibliothèque standard intègre plusieurs Modules. • Un grand nombre de modules spécialisés ou des applications sont écrites en Python: protocoles web, framework web, etc ... Ainsi que le calcul scientifique. - Outils de développement (test automatique, génération de documentation). - et encore plus… Python peut être utiliser sous deux modes, selon l’interactivité escomptée. 1. Commande en ligne 2. Exécution de fichier script .py 12 Mode console Python Mode programme (.py)
  • 13. Elaboration d’un environnement logiciel Python Utilisation : Sous Jupyter, Interface WEB pour Python. Cette interface Web est facilement mise en œuvre par son installation : conda install jupyter (si Anaconda est installé) Ou pip install jupyter Le lancement de l’interface est fait en invoquant : Jupiter notebook Ouvrir le navigateur et entrer l’adresse http://127.0.0.1:8888. Pour utiliser un autre PORT autre que 8888 On note : http://127.0.0.1:Nouveau_Port. L’interface JUPITER est intuitive et facile à utiliser, ses fonctionnalités sont : • Déploiement sous protocole Internet d’aptitude de calcul Python. • Toute les possibilités de gestion des documents ‘Notebook’ sont offertes. • Possibilités d’édition non limitées (LaTeX, HTML, Code, …) • Exécution immédiate. • Compatibilité avec la plupart des langages et scripts de programmation (C/C++, Java, JavaScript, Julia, Python, R, Octave, …) • Offre accessibilité à Jupyter Drive via Google Drive. • Options de Reporting avancées (HTML, LaTeX, PDF). 13 Exemple de code avec son exécution Menu et barre d’outils
  • 14. Elaboration d’un environnement logiciel Python Utilisation : Sous Jupyter, Interface WEB pour Python. Les notebooks sont accessibles à partir de PyCharm. Les notebooks sont des solutions de collaboration de préférences, ils intègrent toute les fonctionnalités exigées par un chercheur dans le domaine des sciences, humaines ou technologiques. Organisation des documents, leur ouverture, édition ou mise à jours se fait dans le même endroit sans aucune dépendance par rapport à la machine, puisque les notebooks sont accessible en ligne (Serveur, Ordinateur de bureau ou Périphérique mobile). Les possibilités sont étendues ainsi qu’une documentation abondante. 14 Graphique 3D Exemple de Code Python
  • 15. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse des données (Panda) Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation 15
  • 16. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse des données (Panda) Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation import numpy as np systeme = np.array([[1,2],[3,-4]]) valeur=np.array([[3],[1]]) sol=np.linalg.solve(systeme,valeur) print("x=",sol[0,0]," et y=",sol[1,0]) x= 1.4 et y= 0.8 # Résolution de système linéaire A.X=b >>> import numpy as np >>> from scipy import linalg >>> A = np.array([[1, 2], [3, 4]]) >>> A array([[1, 2],[3, 4]]) >>> b = np.array([[5], [6]]) >>> b array([[5],[6]]) >>> linalg.inv(A).dot(b) # slow array([[-4. ],[ 4.5]]) >>> A.dot(linalg.inv(A).dot(b)) - b # Vérification array([[8.88178420e-16],[2.66453526e-15]]) >>> np.linalg.solve(A, b) # fast array([[-4. ],[ 4.5]]) >>> A.dot(np.linalg.solve(A, b)) - b # Vérification array([[ 0.],[ 0.]]) Importation de la librairie Numpy 16
  • 17. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse des données (Panda) Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation 17 import numpy as np from scipy import signal, misc import matplotlib.pyplot as plt image = misc.face(gray=True).astype(np.float32) derfilt = np.array([1.0, -2, 1.0], dtype=np.float32) ck = signal.cspline2d(image, 8.0) deriv = (signal.sepfir2d(ck, derfilt, [1]) +signal.sepfir2d(ck, [1], derfilt)) laplacian = np.array([[0,1,0], [1,-4,1], [0,1,0]], dtype=np.float32) deriv2 = signal.convolve2d(ck,laplacian,mode=‘same',boundary='symm') plt.figure() plt.imshow(image) plt.gray() plt.title(‘Image original') plt.show() plt.figure() plt.imshow(deriv) plt.gray() plt.title(‘sortie avec filtre spline') plt.show()
  • 18. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse des données (Panda) Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation from matplotlib.pyplot import figure, hold, plot, legend, draw from numpy import linspace import scipy.stats as stats from numpy.random import randn x = randn(100) fig = figure() ax = fig.add_subplot(111) ax.hist(x, bins=30, label=’Empirical’) xlim = ax.get_xlim() ylim = ax.get_ylim() pdfx = linspace(xlim[0], xlim[1], 200) pdfy = stats.norm.pdf(pdfx) pdfy = pdfy / pdfy.max() * ylim[1] hold(True) plot(pdfx, pdfy, ’r-’, label=’PDF’) ax.set_ylim((ylim[0], 1.2 * ylim[1])) legend() hold(False) draw() 18
  • 19. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse des données (Panda, QtGraph) Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation 19
  • 20. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse sonore du coran Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D Bioinformatique et manipulation du génome Domaines d’utilisation %matplotlib inline from pylab import plot, show, title, xlabel, ylabel, subplot, savefig from scipy import fft, arange, ifft from numpy import sin, linspace, pi from scipy.io.wavfile import read,write def plotSpectru(y,Fs): n = len(y) # lungime semnal k = arange(n) T = n/Fs frq = k/T # two sides frequency range frq = frq[range(n/2)] # one side frequency range Y = fft(y)/n # fft computing and normalization Y = Y[range(n/2)] plot(frq,abs(Y),'r') # plotting the spectrum xlabel('Freq (Hz)') ylabel('|Y(freq)|') Fs = 44100; # sampling rate rate,data=read('fatiha.wav') y=data lungime=len(y) timp=len(y)/44100. t=linspace(0,timp,len(y)) subplot(2,1,1) plot(t,y) xlabel('Time') ylabel('Amplitude') subplot(2,1,2) plotSpectru(y,Fs) show() 20 Lecture de la sourah Code du traitement audio Spectre Amp|Fréq
  • 21. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse sonore du coran Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle (MPI Python) Théorie des graphes (Networkx) Commande de processus et systèmes embarqués Plateforme CAD 2D/3D Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation 21Exemple de graphe Fenêtre Aperçu du bloc-note Importation de la librairie NetworkX
  • 22. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse sonore du coran Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) # set board mode to Broadcom GPIO.setup(17, GPIO.OUT) # set up pin 17 GPIO.setup(18, GPIO.OUT) # set up pin 18 GPIO.output(17, 1) # turn on pin 17 GPIO.output(18, 1) # turn on pin 18 Importation librairie GPIO Module Galileo Gen 2 Module RaspBerry PI 3 22
  • 23. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse sonore du coran Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D (Python CAD, FreeCAD) Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation 23 from OCC.STEPControl import STEPControl_Reader from OCC.IFSelect import IFSelect_RetDone, IFSelect_ItemsByEntity from OCC.Display.SimpleGui import init_display step_reader = STEPControl_Reader() status = step_reader.ReadFile('./models/wind_turbine.stp') if status == IFSelect_RetDone: # check status failsonly = False step_reader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity) step_reader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity) ok = step_reader.TransferRoot(1) _nbs = step_reader.NbShapes() aResShape = step_reader.Shape(1) else: print("Error: can't read file.") sys.exit(0) display, start_display, add_menu, add_function_to_menu = init_display() display.DisplayShape(aResShape, update=True) start_display() Importation librairie OCC Maillage Dauphin Rendu du mât d’un aérogénérateur
  • 24. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse sonore du coran Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D (Python CAD, FreeCAD) Bioinformatique et manipulation du génome POO avec Python (Programmation Orientée Objet) Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation class Rocket(): # Rocket simule une roquette pour un jeu, # ou une simulation de physique. def __init__(self): # Each rocket has an (x,y) position. self.x = 0 self.y = 0 def move_up(self): # Incrémentation de la position y de la roquette. self.y += 1 # Définir une ensemble de 5 roquettes, les stocker dans une liste. my_rockets = [] for x in range(0,5): new_rocket = Rocket() my_rockets.append(new_rocket) # A remarquer que chaque roquette est un objet à part entière. for rocket in my_rockets: print(rocket) Définition d’une nouvelle Classe Instantiation Méthode Constructeur __init__ 24
  • 25. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse sonore du coran Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D (Python CAD, FreeCAD) Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation 25 from Bio import SeqIO for seq_record in SeqIO.parse("ls_orchid.gbk", "genbank"): print(seq_record.id) print(repr(seq_record.seq)) print(len(seq_record)) Z78533.1 Seq('CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGG...CGC', IUPACAmbiguousDNA()) 740 ... Z78439.1 Seq('CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACT...GCC', IUPACAmbiguousDNA()) 592 Sinon dans une Terminal Python >>> from Bio.Seq import Seq >>> from Bio.Alphabet import generic_dna >>> gene = Seq("GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA" + ... "GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT" + ... "AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT" + ... "TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT" + ... "AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA", ... generic_dna) >>> gene.translate(table="Bacterial") Seq('VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDH...HR*', HasStopCodon(ExtendedIUPACProtein(), '*') >>> gene.translate(table="Bacterial", to_stop=True) Seq('VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDH...HHR', ExtendedIUPACProtein()) Logo de BioPython Séquence d’ADN Importation librairie BIO
  • 26. Les domaines utilisant le langage script Python sont nombreux : Calcul scientifique de base (Modèle (Non-) linéaire) Python pour traitement du signal Calcul de probabilité et statistiques Développement de graphiques interactive avec Plotly Visualisation des données avec Lightning Lissage et régression non Paramétrique Solveur d’équations différentielles partielles Librairie Python d’analyse sonore du coran Analyse de Big-Data en python Machine Learning sous Python avec le package scikit-learn Econométrie sous Python avec le package StatsModels Introduction à la programmation parallèle avec MPI Python Théorie des graphes Commande de processus et systèmes embarqués Plateforme CAD 2D/3D (Python CAD, FreeCAD) Bioinformatique et manipulation du génome Développement de sites Web (Framework Django) Domaines d’utilisation 26 # Installer à partir de PyPI $ pip install mezzanine # Instantier un projet $ mezzanine-project monproject $ cd monproject # Instantier une Base de données $ python manage.py createdb # Lancer le serveur Web $ python manage.py runserver Installation en mode commande URL du site instantié Version Mobile, Menu Version Administration Sites Web fait avec Mezzanine Version Normal
  • 27. Les environnements de développement intégrés de code Python sont nombreux, des solutions propriétaires à celles portant le label GPL. Ils sont de trois grandes catégories : Les applications bureaux (Desktop) Les consoles de commande en ligne Les interfaces orientées Web Outils d’élaboration de code Python (IDE) 27
  • 28. Les environnements de développement intégrés de code Python sont nombreux, des solutions propriétaires à celles portant le label GPL. Ils sont de trois grandes catégories : Les applications bureaux (Desktop) Les consoles de commande en ligne Les interfaces orientées Web Outils d’élaboration de code Python (IDE) 28
  • 29. Les environnements de développement intégrés de code Python sont nombreux, des solutions propriétaires à celles portant le label GPL. Ils sont de trois grandes catégories : Les applications bureaux (Desktop) Les consoles de commande en ligne Les interfaces orientées Web Outils d’élaboration de code Python (IDE) 29
  • 30. 30
  • 31. Nom de Symbole : Les noms de variables en Python peuvent contenir des caractères alphanumériques a-z, A-Z, 0- 9 et certains caractères spéciaux tel que _. Les noms de variables normales doivent commencer par une lettre. Par convention, les noms de variables commencent par une lettre minuscule, et les noms de classe commencent par une lettre majuscule. En outre, il y a un certain nombre de mots-clés Python qui ne peuvent pas être utilisés comme noms de variables. Ces mots-clés sont les suivants: and, as, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yield Affectation : # assignment de variable x = 1.0 my_variable = 12.2 type(x) #fonction TYPE retourne le type de la variable entre parenthèse builtins.float Verification de type : x = 1.0 # vérifier si la variable est réelle type(x) is float isinstance(x, float) True z = complex(x) print(z, type(z)) (1+0j) <class 'complex‘> Base de représentation des données 31
  • 32. Operateurs et comparaisons Opérateurs arithmétiques +, -, *, /, // (division entière), '**' puissance. 3.0 // 2.0 1.0 # NB: operators puissance en python n’est pas ^, mais ** 2 ** 2 4 Les opérateurs de comparaison sont >,<,>=,<=,==. # objects identiques ? x1 = x2 = [1,2] x1 is x2 True 2 >= 2, 2 <= 2 (True, True) Chaines de caractères, les liste et les dictionnaires s = "Hello world" type(s) builtins.str # length of the string: the number of characters len(s) 11 # replace a substring in a string with somethign else s2 = s.replace("world", "test") print(s2) Hello test s[0] 'H' Base de représentation des données 32
  • 33. Chaines de caractères, les liste et les dictionnaires s = "Hello world“ # replace a substring in a string with somethign else s2 = s.replace("world", "test") Hello test print(s2) s[0:5] 'Hello‘ s[0:5] 'Hello‘ s[:] 'Hello world‘ print("value = %f" % 1.0) # Formatage C des variables value = 1.000000 s2 = "value1 = %.2f. value2 = %d" % (3.1415, 1.5) print(s2) value1 = 3.14. value2 = 1 Listes l = [1,2,3,4] print(type(l)) print(l) <class 'list'> [1, 2, 3, 4] l = [1, 'a', 1.0, 1-1j] # peuvent être hétérogène print(l) [1, 'a', 1.0, (1-1j)] Base de représentation des données 33
  • 34. Listes start = 10 stop = 30 step = 2 range(start, stop, step) range(10, 30, 2) list(range(start, stop, step)) [10, 12, 14, 16, 18, 20, 22, 24, 26, 28] s2 = list(s) S2 ['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] # Tri de la liste s2.sort() print(s2) [' ', 'H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w'] l = [] l.append("A") l.append("d") l.append("d") print(l) ['A', 'd', 'd'] Tuples Ce sont des variables comme les listes mais pas altérables point = (10, 20) print(point, type(point)) (10, 20) <class 'tuple'> Base de représentation des données 34
  • 35. Tuples x, y = point print("x =", x) print("y =", y) x = 10 y = 20 Dictionaries params = {"parameter1" : 1.0, "parameter2" : 2.0, "parameter3" : 3.0,} print(type(params)) print(params) <class 'dict'> f'parameter2': 2.0, 'parameter3': 3.0, 'parameter1': 1.0} params["parameter1"] = "A" params["parameter2"] = "B" # Ajouter une nouvelle entrée params["parameter4"] = "D" print("paramètre = " + str(params["parameter1"])) print("paramètre = " + str(params["parameter2"])) print("paramètre = " + str(params["parameter3"])) print("paramètre = " + str(params["parameter4"])) paramètre = A paramètre = B paramètre = 3.0 paramètre = D Base de représentation des données 35
  • 36. 36
  • 37. Affectation & Contrôle conditionnel de flue statement1 = False # C’est une affectation statement2 = False if statement1: # Test validé condition (statement1) est VRAIE print("statement1 is True") elif statement2: # Exécutée condition (statement2) est VRAIE print("statement2 is True") else: # Exécutée sinon print("statement1 and statement2 are False") Boucles for x in [1,2,3]: # [1,2,3] peut être désigné par range(3) avec print(x+1) print(x) 1 2 3 for word in ["scientific", "computing", "with", "python"]: print(word) # condition de répétition dépendante du contenu de la liste scientific computing with python l1 = [x**2 for x in range(0,5)] # à remarquer la compacité du Python print(l1) [0, 1, 4, 9, 16] Base de représentation des données 37
  • 38. Boucles var = 0 while var != 1: print " .... " # j‘écris mon programme ici choix = raw_input("voulez vous recommencer ? ( o/n ) : ") if choix == "n": var = 1 else: ‘vous allez être renvoyé au début du programme’ X = y / 2 while x > 1: If y % x == 0: print y, ‘ est facteur de ’, x break x -= 1 else: print y, ‘ est premier‘ L’utilisation de zip et map, peut s’avérée encore plus efficace l1 = [1, 2, 3] l2 = [4, 5, 6] for (x, y) in zip(l1, l2): print x, y, '--', x + y 1 4 -- 5 2 5 -- 7 3 6 -- 9 Base de représentation des données 38 s='0123456789' print map(int, s) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Utilisation et puissance de MAP Utilisation de ZIP
  • 39. Intervales range(start, stop, step) range(5, 10) 5 jusqu’à 10 (exclue) avec un pas de 1 range(0, 10, 3) 0, 3, 6, 9 range(-10, -100, -30) -10, -40, -70 Test conditionnel binaire x = 5 y = 10 if x > y: print('x est grand que y') else: print(“x n’est pas grand que y”) # Dans Python, on peut compliquer les chose x = 5 y = 10 Z = 12 if z > x > y: print(‘y est petit que x, et x est petit que z') Base de représentation des données 39
  • 40. Boucle avec test conditionnel binaire # break, continue et else dans une boucle for for n in range(2, 10): for x in range(2, n): if n % x == 0: print(n, ‘est égal à', x, '*', n//x) break else: print(n, ‘est premier') # Utilisation de l’instruction continue for num in range(2, 10): if num % 2 == 0: # le symbole % désigne l’opération RESTE de la division print(“Nombre paire trouvé ", num) continue print(“Nombre non premier ", num) Base de représentation des données 40
  • 41. Définition de fonction (procédure avec retour) def fib(n): # Ecrire la suite de Fibonacci jusqu’à n a, b = 0, 1 while a < n: print(a, end=' ') a, b = b, a+b print() fib(2000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 f = fib # désignation par référence f à la fonction fib f(100) 0 1 1 2 3 5 8 13 21 34 55 89 # autre type de définition de fonction def ask_ok(prompt, retries=4, complaint="Oui or Non, s’il vou plait !"): while True: ok = input(prompt) if ok in (‘o', ‘oui', ‘Oui'): return True if ok in (‘n', 'no', 'non', ‘Non'): return False retries = retries - 1 if retries < 0: raise OSError(‘Utilisateur non coopératif') print(complaint) Base de représentation des données 41
  • 42. L’instruction lambda def make_incrementeur(n): return lambda x: x + n f = make_incrementeur(42) f(0) 42 f(1) 43 # un autre cas d’utilisation pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')] pairs.sort(key=lambda pair: pair[1]) pairs [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')] Les annotations dans une fonction # Les annotations définissent des messages de présentation def f(chiken: str, eggs: str = 'eggs') -> str: # remarquer que la fonction est de type STR print("Annotations:", f.__annotations__) print("Arguments:", chiken, eggs) return chiken + ' and ' + eggs f('spam') Annotations: {'chiken': <class 'str'>, 'return': <class 'str'>, 'eggs': <class 'str'>} Arguments: spam eggs 'spam and eggs‘ Base de représentation des données 42
  • 43. Les décorateurs python # Notre décorateur def decorate(func): print u"Je suis dans la fonction 'decorate' et je décore '%s'." % func.__name__ print u"Exécution de la fonction '%s'." % func.__name__ return func # Fonction cible utilisée avec DECORATOR @decorate def foobar(*args): print ", ".join(args) # Exemple d’appel de la fonction foobar("A", "B", "C", "D") Je suis dans la fonction 'decorate' et je décore 'foobar'. Exécution de la fonction 'foobar'. A, B, C, D # Il est posible d’attribuer plusieurs décorateurs à une seule fonction. @decorateur1 @decorateur2 def ma_fonction(): instructions Base de représentation des données 43
  • 44. Manipulation des listes a = [66.25, 333, 333, 1, 1234.5] print(a.count(333), a.count(66.25), a.count('x')) 2 1 0 a.insert(2, -1) a.append(333) a [66.25, 333, -1, 333, 1, 1234.5, 333] a.index(333) 1 a.remove(333) a [66.25, -1, 333, 1, 1234.5, 333] a.reverse() a [333, 1234.5, 1, 333, -1, 66.25] a.sort() a [-1, 1, 66.25, 333, 333, 1234.5] a.pop() 1234.5 a [-1, 1, 66.25, 333, 333] Base de représentation des données 44
  • 45. Puissance du langage Python # L’ensemble des lignes suiantes peut être compacté par ce qui suit combs = [] for x in [1,2,3]: for y in [3,1,4]: if x != y: combs.append((x, y)) Combs # Ou bien [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y] # Donne le même résultat [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)] # Calcul de la valeur de PI arrondie from math import pi [str(round(pi, i)) for i in range(1, 6)] ['3.1', '3.14', '3.142', '3.1416', '3.14159'] # Générateur avec utilisation de YIELD def generateur(): yield "a" yield "b" yield "c“ i=generateur() for v in i: print v a b c Base de représentation des données 45
  • 46. Les expressions régulières en python # Les expressions régulière sont utilisées pour vérifier la conformité des expressions de # chaines de caractères par rapport à un motif. Les symboles suivants sont utilisés : # . ^ $ * + ? { } [ ] | ( ) # . Le point correspond à n'importe quel caractère. # ^ Indique un commencement de segment mais signifie aussi "contraire de" # $ Fin de segment # [xy] Une liste de segment possible. Exemple [abc] équivaut à : a, b ou c # (x|y) Indique un choix multiple type (ps|ump) équivaut à "ps" OU "UMP" # d le segment est composé uniquement de chiffre, ce qui équivaut à [0-9]. # D le segment n'est pas composé de chiffre, ce qui équivaut à [^0-9]. # s Un espace, ce qui équivaut à [ tnrfv]. # S Pas d'espace, ce qui équivaut à [^ tnrfv]. # w Présence alphanumérique, ce qui équivaut à [a-zA-Z0-9_]. # W Pas de présence alphanumérique [^a-zA-Z0-9_]. # Est un caractère d'échappement # T{2} Le T soit répété 2 fois # TA{1,9} La séquence TA doit être présente de 1 à 9 fois # TAM{,10} La séquence TAM n’existe pas ou répétée 10 fois # LI{1,} La séquence LI doit être répétée au moins une fois. Base de représentation des données 46
  • 47. Les expressions régulières en python # Utilisation des expressions régulière import re print re.match(r"GR(.)?S", "GRIS") <_sre.SRE_Match object at 0x02019DE0> Une utilisation fréquente, consiste en la validation des valeurs des emails saisis. # Utilisation des expressions régulière import re mails = [‘mtamali@gmail.com’,’utmb@univ-bechar.dz’, ‘8@free.fr’, ‘@univ-bechar.dz’, ‘tamali@cdta’] regex = re.compile(r’^[a-z0-9._-]+@[a-z0-9._-]+.[(com|fr|dz)]+’ for mail in mails: if regex.match(mail) is not None: print "Ce mail : %s est valide" % mail else: print "Erreur ce mail : %s est non valide" % mail Ce mail : mtamali@gmail.com est valide Ce mail : utmb@univ-bechar.dz est valide Ce mail : 8@free.fr est valide Erreur ce mail : @univ-bechar.dz est non valide Erreur ce mail : tamali@cdta est non valide Base de représentation des données 47
  • 48. Les fichiers, Créer lire et écrire dans un fichier en python # Utilisation des expressions régulière fichier = open("donnees.txt", "r") print fichier <open file ‘donnees.txt', mode 'r' at 0x7ff6cf3fe4b0> Le descripteur permet de renseigner la machine sur la manière avec laquelle le fichier est utilisé. r, pour ouverture en mode READ. w, pour ouverture en mode WRITE, chaque fois, le contenu du fichier est écrasé sinon python le crée. a, pour ajout ‘APPEND’. Si le fichier n'existe pas python le crée. b, Ouverture en mode Binaire. t, Ouverture en mode Texte. x, crée un nouveau fichier et l'ouvrir pour écriture # procédure générale pour l’utilisation d’un fichier fichier = open(‘donnees.txt’, "r") print fichier.read() fichier.close() # L’instruction WITH peut être utilisée sans besoin de la fonction CLOSE with open("data.txt", "r") as fichier: print fichier.read() Base de représentation des données 48
  • 49. 49
  • 50. Le langage Python, est un langage script interprété. Le programme, portant l’une des extension .py, .pyw ou .pwc est structuré selon le canevas suivant : Les codifications #!/usr/bin/python2.7 # -*-coding:encodage -* Les imports des librairies Les instructions Le langage Python passe, pour être exécuté sur deux étapes, la première UNE PRECOMPILATION génération du code machine et finalement un écriture en code machine exécutable (selon la machine). L’environnement d’exécution des scripts écrits en Python, regroupe les avantages des TRADUCTEURS (travaille en ligne par ligne) et les COMPILATEURS (puissance de la structure algorithmique). La bibliothèque cx_Freeze sert à transformer les fichiers scripts Pyhon .py en exécutable .exe. Structures algorithmique du python 50
  • 51. 51
  • 52. Matrices & Systèmes linéaires 52
  • 53. 53
  • 54. 54
  • 55. 55
  • 56. 56
  • 58. Références L.-V. Bertallanfy, ‘General System Theory’, Edition MASSON, 1972. 58