Introduction aux tests de normalité statistiques avec Python

### Le test de Shapiro-Wilk Le test de Shapiro–Wilk, publié en 1965 par Samuel Shapiro et Martin Wilk, teste l'hypothèse nulle selon laquelle un échantillon $x_1, ..., x_n$ est issu d'une population normalement distribuée (voir [article wikipedia](http://fr.wikipedia.org/wiki/Test_de_Shapiro-Wilk)). Ce test est directement disponible dans le module stats de scipy (voir [Test de Shapiro-Wilk avec scipy](http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.shapiro.html)) : from sc

Calculer et tracer la divergence de Kullback-Leibler avec python et matplotlib

Un exemple sur comment calculer et tracer la divergence de Kullback-Leibler avec python et matplotlib [image:381 size:100 caption:Divergence de Kullback-Leibler (python)] #!/usr/bin/env python # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np import matplotlib.mlab as mlab from scipy.stats import norm from scipy.integrate import quad def p(x): return norm.pdf(x, 0, 2) def q(x): return norm.pdf(x, 2, 2) def KL(x): return p(x) *

Créer une table du (chi2) avec python

Code python permettant de construire une table du test chi2. Le code fonctionne pour des dégrées de liberté (degrees of freedom df) strictement supérieurs à 2 (car le code utilise la méthode de Newton avec comme valeur de départ l'approximation x0=df, cependant cette approximation grossière ne marche pas pour df = 1 et 2 (problème de convergence) mais fonctionne très bien pour df > 2). Pour construire une nouvelle table vous pouvez changer la liste des p-values (PValueList) et/ou l'intervalle de

Modèle de mélanges gaussiens (GMM 1d) avec python

Dans cet article on va voir un simple exemple sur comment définir un modèle de mélanges gaussiens (ou GMM pour Gaussian Mixture Model) en utilisant le module scikit de python. 1: Créer des données pour l'exemple import numpy as np np.random.seed(1) obs = np.concatenate((np.random.randn(1000, 1), \ 10+np.random.randn(3000, 1))) 2: Tracer histogramme avec matplotilb import matplotlib.pyplot as plt num_bins = 50 n, bins, patches = plt.hist(obs, num_bins, normed=1, facecolor='

Calculer et tracer une estimation par noyau avec python et scipy

Simple exemple sur comment calculer et tracer une estimation par noyau avec python et scipy [image:kernel-estimation-1d] from scipy.stats.kde import gaussian_kde import matplotlib.pyplot as plt import numpy as np data = [-2.1,-1.3,-0.4,5.1,6.2] kde = gaussian_kde(data) x = np.linspace(-15, 20.0, 50) y = [kde(i) for i in x] plt.scatter(data,[0 for i in data]) plt.plot(x,y) plt.title("Estimation par noyau avec pytho et scipy") plt.grid() plt.savefig("kernel_estimation_1d.p

Django: utilisation des fichiers statiques (CSS, images) en développement

Dans cet article on va présenter un exemple complet pour comprendre comment avec django utiliser les fichiers statiques (CSS, images, etc) sur le serveur de développement. Pour cela considérons le cas suivant, on dispose d'un template trouvé par exemple sur [freewebtemplates](http://www.freewebsitetemplates.com) et on veut utiliser ce template pour notre site développé avec Django (dans ce exemple on a utilisé: ecologicalwebsitetemplate). 1: Créer le site django-admin.py startproject Mo

Obtenir une liste de(s) méthode(s) d'un objet ?

Pour obtenir une liste de(s) méthode(s) d'un objet donnée on peut utiliser la ligne de code suivante: methodList = [method for method in dir(objet) if callable(getattr(objet, method))] en remplaçant objet par le nom de votre instance . Un exemple simple: class MyClass(): def Meth_01(self): return 'Hello World !' def Meth_02(self): return 'Hello Universe !' def Meth_03(self): return 'Hello Earth !' ins = MyClass() methodList = [method for method in dir(ins)

Déterminer le nombre de lignes dans un fichier avec python

Exemple de comment déterminer le nombre de lignes dans un fichier avec python: f = open('MonFichier.txt', 'r') NumberOfLine = 0 for line in f: NumberOfLine += 1 print 'Nombre de lignes: ',NumberOfLine Note pour revenir au début du fichier après avoir déterminer le nombre de lignes il faut utiliser la commande suivante: f.seek(0) ### Recherches associées Liens | Site ------------- | ------------- [how to count the total number of lines in a text file using python](http://stacko

Comment augmenter la taille d'un nuage de points avec Matplotlib ?

Exemples de comment tracer un nuage de points avec des tailles différentes avec Matplotlib: [TOC] ### Augmenter la taille de tous les points Pour augmenter la taille des points il existe l'option "s" dans la fonction [scatter()](http://matplotlib.org/api/pyplot_api.html#module-matplotlib.pyplot), exemple [image:ScatterPlot-07 size:50 caption:Comment augmenter la taille d'un nuage de points avec Matplotlib ?] import matplotlib.pyplot as plt x = [1,2,3,4,5,6,7,8] y = [4,1,3,6

Comment tracer un nuage de points avec matplotlib ?

Simples exemples de comment tracer un nuage de points avec matplotlib: [TOC] ### Tracer une nuage de points avec scatter Pour tracer simplement un nuage de points avec Matplotlib il existe la méthode "scatter" dans la classe pyplot (voir [matplotlib.pyplot.scatter](http://matplotlib.org/api/pyplot_api.html#module-matplotlib.pyplot)). Exemple simple d'utilisation: [image:418 size:50 caption:Comment tracer une nuage de points avec matplotlib ?] import matplotlib.pyplot as plt

Comment implémenter une régression linéaire simple avec scikit-learn et python 3

Pour faire une régression linéaire simple avec python 3 on peut utiliser le module [scikit-learn](http://scikit-learn.org/stable/index.html), exemple de code: [image:553 size:50 caption:Comment implémenter une régression linéaire simple avec scikit-learn et python 3] from sklearn import linear_model import matplotlib.pyplot as plt import numpy as np import random #----------------------------------------------------------------------------------------# # Step 1: training dat

Comment copier une matrice en python ?

Exemples de comment copier une matrice en python [TOC] ### Copier une matrice avec la fonction numpy copy() Pour copier une matrice, une solution simple est d'utiliser la fonction numpy [copy()](http://docs.scipy.org/doc/numpy/reference/generated/numpy.copy.html), exemple: >>> import numpy as np >>> x = np.array([1, 2, 3, 4]) >>> y = np.copy(x) >>> y[1] = 7 >>> y array([1, 7, 3, 4]) >>> x array([1, 2, 3, 4]) Cependant il est important

Comment créer un formulaire en html avec une image de fond ?

Simple exemple sur comment placer un formulaire HTML dans une image (Modifier simplement left: 100px; top: 250px; pour changer la position du formulaire dans l'image) [image:form-with-background-image size:50 caption:Comment créer un formulaire en html avec une image de fond ?] <!DOCTYPE html> <html> <body> <form style="position: relative;" method="GET" action=""> <img src="Lenna.png" /> <div style="position: absolute; left: 100px; top: 250px;"> <input type="text

Champ caché dans un formulaire sous Django

Exemple de comment avoir un champ caché dans un formulaire avec Django: models.py from django.db import models from django import forms class MyForm(forms.Form): MyHiddenParameter = forms.CharField(widget=forms.HiddenInput()) urls.py url(r'^test/$', 'MyApp.views.MyView') views.py from MyApp.models import MyForm def MyView(request,path): if request.method == 'POST': form = MyForm(request.POST) if form.is_valid():

Comment convertir une image codée en base64 en format png avec python ?

Exemple de comment sauvegarder une image codée en base64 en format png avec python (le fichier base64.txt utilisé dans cet exemple est disponible [ici](https://www.science-emergence.com/Files/base64/)): import base64 from PIL import Image from io import BytesIO f = open('base64.txt', 'r') data = f.read() f.closed im = Image.open(BytesIO(base64.b64decode(data))) im.save('image.png', 'PNG') donne ici: [image:550 size:50 caption:Convertir avec python une image codée en

Obtenir le chemin du répertoire courant avec python

Avec python on peut facilement obtenir le chemin du répertoire courant en utilisant la fonction getcwd() du module [os](https://docs.python.org/2/library/os.html), exemple: >>> import os >>> os.getcwd() '/Users/toto/Desktop' Pour obtenir le chemin du répertoire courant dans un script python: from os import path as os_path PATH = os_path.abspath(os_path.split(__file__)[0]) Path donne ici le chemin complet d'où est lancé le script. ### Recherches associées Liens | Site

Mettre une image en fond dans un canvas sous HTML5

Pour mettre une image de fond ("background image") dans un canvas sous HTML5 il existe plusieurs solutions le plus simple est d'utiliser l'attribut background: url(image.png) dans la balise canvas. Illustration: [image:549 size:100 caption:Mettre une image en fond dans un canvas sous HTML5] <!DOCTYPE html> <html> <body> <canvas id="tools_sketch" width="512" height="512" style="background: url(lena.png) no-repeat center center; border:10px solid #000000;"> </canvas> </body>

Diviser deux nombres entiers sous python

Attention sous python (v < 3) quand on divise deux entiers on obtient un nombre arrondi à la valeur entière immédiatement inférieure. Par exemple: >>> a = 1 >>> b = 2 >>> c = a / b >>> c 0 1/2 donne ici 0 au lieu de 0.5. Note: c est de type float: >>> type(a) <type 'int'> >>> type(b) <type 'int'> >>> type(c) <type 'float'> Pour obtenir un nombre décimal il existe plusieurs solutions: Solution 1: >>> c = 1.0 * a / b >>> c 0.5 Solu

Erreur python: SyntaxError: Non-ASCII character '\x8e' in file...

L'une des erreurs les plus courantes lorsque l'on veut utiliser dans un script python des accents (Note: voir l'article sur [Afficher / Travailler avec les accents sous python](http://www.science-emergence.com/Python/PythonFAQ/PythonAccents/)). Imaginons le simple script python (intitulé ici: TestCode.py) suivant: print "J'ai tout mangé le chocolat" en executant ce code vous allez obtenir le message suivant: % python TestCode.py File "TestCode.py", line 1 print u"

Python 2.7 (tutoriel)

Introduction ------------------ [image:68 size:100 caption:Logo Python ([image source](http://en.wikipedia.org/wiki/Python_(programming_language)))] **C'est quoi python ?**: Python est un langage de programmation dont le développement a commencé dans les années 90 avec un hollandais nommé Guido van Rossum. La version actuelle de python est la 3.3, mais la version 2.7 est encore très largement utilisée, principalement pour des raisons de compatibilités avec certaines bibliothèques. La particul

Tracer une matrice de confusion avec matplotlib

Exemple de comment tracer une [matrice de confusion](http://fr.wikipedia.org/wiki/Matrice_de_confusion) avec matplotlib: [image:548 size:100 caption:Tracer une matrice de confusion avec matplotlib] # -*- coding: utf-8 -*- # Source: http://azaleasays.com/2010/04/29/matplotlib-example-color-mesh/ from numpy import * import matplotlib import numpy as np import matplotlib.pyplot as plt import math font = {'size' : 16} matplotlib.rc('font', **font) def sqrt_sym(x): '''A funct

Comment additionner tous les éléments d'une liste sous python ?

Exemples de comment additionner tous les éléments d'une liste sous python: [TOC] ### Additionner tous les éléments d'une liste avec la fonction sum() Pour sommer tous les éléments d'une liste sous python il existe la fonction "Built-in" [sum()](https://docs.python.org/2/library/functions.html), illustration: >>> list = [1,2,3,4] >>> sum(list) 10 avec des nombres décimaux: >>> l = [3.1,2.5,6.8] >>> sum(l) 12.399999999999999 on peut aussi arrondir l

Multiplier tous les éléments d'une liste par un entier sous python

Pour multiplier tous les éléments d'une liste par un entier sous python il suffit de procéder comme dans cet exemple: >>> list = [1,2,3,4] >>> list = [i*10 for i in list] >>> list [10, 20, 30, 40] ### Recherches associées Liens | Site ------------- | ------------- [Great Python Tricks for avoiding unnecessary loops in your code](http://forums.udacity.com/questions/1002566/great-python-tricks-for-avoiding-unnecessary-loops-in-your-code) | udacity

Comment copier une liste sous python ?

Pour copier une liste avec python on peut utiliser la fonction build-in [list()](https://docs.python.org/2/library/functions.html#list), exemple: >>> L1 = ['a','b','c','d','e','f'] >>> L2 = list(L1) >>> L2 ['a', 'b', 'c', 'd', 'e', 'f'] Autre solution utiliser une "list comprehension", exemple >>> L1 = ['a','b','c','d','e','f'] >>> L2 = [i for i in L1] >>> L2 ['a', 'b', 'c', 'd', 'e', 'f'] **Attention**: pour copier une liste il ne faut pas utili

Sommer tous les éléments d'une matrice avec python

Sous python, il est possible de sommer tous les éléments d'une matrice en passant par la fonction [sum](http://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html) de numpy, illustration: >>> import numpy as np >>> M = np.array([[1, 2], [3, 4]]) >>> M array([[1, 2], [3, 4]]) >>> np.sum(M) 10 marche aussi avec une matrice de nombres réel: >>> M = np.array([[1.0, 2.0], [3.1, 4.4]]) >>> np.sum(M) 10.5 ### Recherches associées Lie