# Open Science Notes

## How to find index (or indexes) of a given element in a list with python ?

Let's consider a list of random numbers: >>> import random >>> l = [random.randint(0,5) for i in range(10)] >>> l [1, 0, 4, 4, 4, 4, 0, 2, 1, 0] To find the position of 2, we can use the method [index()](https://docs.python.org/3/tutorial/datastructures.html): >>> l.index(2) 7 that returns 7. However if we use the method [index()](https://docs.python.org/3/tutorial/datastructures.html) to retrieve indexes of 4, the method returns only the first index

## How to sort a list of numbers (in ascending or descending order) with python 3 ?

To sort a list of numbers in ascending or descending, built-in functions [sort()](https://docs.python.org/3.4/library/stdtypes.html#list.sort) or [sorted()](https://docs.python.org/3.4/library/functions.html#sorted) can be used: ### (1) Using sort() The [sort()](https://docs.python.org/3.4/library/stdtypes.html#list.sort) function change the list directly, exemple to get the list of numbers l in ascending order: >>> import random >>> l = [i for i in range(10)] >>> random.

## How to create a list of random integers in python ?

Examples of how to create a list of random integers in python: [TOC] ### Using the function randint The python function randint can be used to generate a random integer in a chosen interval [a,b]: >>> import random >>> random.randint(0,10) 7 >>> random.randint(0,10) 0 A list of random numbers can be then created using python list comprehension approach: >>> l = [random.randint(0,10) for i in range(5)] >>> l [4, 9, 8, 4, 5] ### Using the

## How to add text on a bar with matplotlib ?

Example of how to add text on a bar with matplotlib ([source](https://matplotlib.org/examples/api/barchart_demo.html)) [image:add-text-bar-matplotlib-01 size:50 caption:Ajouter du texte sur diagramme en baton avec matplotlib] import matplotlib.pyplot as plt fig, ax = plt.subplots() bar_x = [1,2,3,4,5,6,7] bar_height = [12,14,17,11,12,9,12] bar_tick_label = ['C1','C2','C3','C4','C5','C6','C7'] bar_label = [12,14,17,11,12,9,12] bar_plot = plt.bar(bar_x,bar_height,tick_labe

## Ajouter du texte sur diagramme en baton avec matplotlib

Exemple de comment ajouter du texte sur diagramme en baton avec matplotlib ([source](https://matplotlib.org/examples/api/barchart_demo.html)) [image:add-text-bar-matplotlib-01 size:50 caption:Ajouter du texte sur diagramme en baton avec matplotlib] import matplotlib.pyplot as plt fig, ax = plt.subplots() bar_x = [1,2,3,4,5,6,7] bar_height = [12,14,17,11,12,9,12] bar_tick_label = ['C1','C2','C3','C4','C5','C6','C7'] bar_label = [12,14,17,11,12,9,12] bar_plot = plt.bar(bar

## How to insert an image (a picture or a photo) in a matplotlib figure

To insert an image in matplotlib figure, there is the [annotation](http://matplotlib.org/examples/pylab_examples/demo_annotation_box.html) function. Example, using Lena picture: [image:add-picture-matplotlib-figure size:50 caption:Insérer une image dans une figure matplotlib] from matplotlib.offsetbox import TextArea, DrawingArea, OffsetImage, AnnotationBbox import matplotlib.pyplot as plt import matplotlib.image as mpimg fig, ax = plt.subplots() ax.set_xlim(0, 1) ax.set_y

## Test locally 2 or more websites with Django

In Django, several websites can be tested in the same time by specifying the port. By default, with the command: python manage.py runserver the port is 8000. But another website can be launched on the port 8001 for example using the command: python manage.py runserver 8001 and then enter the url: http://127.0.0.1:8001 ### References Links | Site ------------- | ------------- [Run Django on multiple ports](https://stackoverflow.com/questions/3883497/run-django-

## Tester localement plusieurs sites en même temps avec Django

Avec Django on peut tester (développer) plusieurs sites en même temps en spécifiant le port. Par défaut avec la commande: python manage.py runserver le port est 8000. Mais on peut lancer un autre site sur le port 8001 par exemple en tapant: python manage.py runserver 8001 et se rendre à l'url: http://127.0.0.1:8001 ### Références Liens | Site ------------- | ------------- [Run Django on multiple ports](https://stackoverflow.com/questions/3883497/run-django-on

## Un exemple d'écran de pré-téléchargement (loader) pour son site web en javascript

Un exemple d'écran de pré-téléchargement (loader) en javascript que j'ai trouvé [ici](http://joaopereirawd.github.io/fakeLoader.js/demo/demo2.html) et utilisé pour le site. Note: vous pouvez télécharger les fichiers css et js [ici](http://joaopereirawd.github.io/fakeLoader.js/) et ensuite tester le code avec une simple page html: <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="fakeLoader.css"> </head> <body> <div class="fakeloader"></div> <a h

## How to convert month index to name in python

To convert month index (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ou 12) to name (January, February, March, April, May, June, July, August, September, October, November, December), the simplest way is to use python module [calendar](https://docs.python.org/3/library/calendar.html): >>> import calendar >>> month_idx = 9 >>> month_name = calendar.month_name[month_idx] >>> month_name 'September' another example: >>> for month_idx in range(1,13): ... calendar.mo

## Convertir le numéro d'un mois en nom avec python

Pour convertir le numéro d'un mois (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ou 12) en nom (Janvier, Février, Mars, Avril, Mai, Juin, Juillet, Août, Septembre, Octobre, Novembre, Décembre), le plus simple est d'utiliser le module python [calendar](https://docs.python.org/3/library/calendar.html): >>> import calendar >>> month_idx = 9 >>> month_name = calendar.month_name[month_idx] >>> month_name 'September' autre exemple: >>> for month_idx in range(1,13): ...

## How to vertically center a button in table using bootstrap 4

To vertically center a button in table using bootstrap 4, one can use class="align-middle" [image:center-verticaly-button-table size:100 caption:Centrer verticalement un bouton dans un tableau avec bootstrap 4 ] example: <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

## Centrer verticalement un bouton dans un tableau avec bootstrap 4

Pour centrer verticalement un bouton dans un tableau avec bootstrap 4 on peut utiliser class="align-middle" [image:center-verticaly-button-table size:100 caption:Centrer verticalement un bouton dans un tableau avec bootstrap 4 ] exemple: <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossor

## How to remove string accents in python 2

Removing accents using [unicodedata](https://pypi.python.org/pypi/Unidecode/0.04.1): >>> import unicodedata >>> s = 'Découvrez tous les logiciels à télécharger' >>> s 'D\xc3\xa9couvrez tous les logiciels \xc3\xa0 t\xc3\xa9l\xc3\xa9charger' >>> s1 = unicode(s,'utf-8') >>> s2 = unicodedata.normalize('NFD', s1).encode('ascii', 'ignore') >>> s2 'Decouvrez tous les logiciels a telecharger' Note: it is necessary to first determine the encodage. Example

## Convert an integer to boolean in python

To convert an integer to boolean in python, one can use the [bool()](https://www.programiz.com/python-programming/methods/built-in/bool) function, example: >>> n = 1 >>> bool(n) True >>> n = 0 >>> bool(n) False Note that if the number is not 0, bool() always returns True: >>> n = 9 >>> bool(n) True >>> n = -1 >>> bool(n) True ### References Links | Site ------------- | ------------- [Python bool()](https://www.programiz.

## Convertir un entier en booléen sous python

Pour transformer un entier en booléen avec python, on peut utiliser la fonction [bool()](https://www.programiz.com/python-programming/methods/built-in/bool): >>> n = 1 >>> bool(n) True >>> n = 0 >>> bool(n) False Si le nombre entier n est différent de 0, la fonction bool() donne toujours True: >>> n = 9 >>> bool(n) True >>> n = -1 >>> bool(n) True ### Références Liens | Site ------------- | ------------- [Python bool()](

## Comment supprimer les accents d'une chaîne de caractères avec python 3

Supprimer les accents d'une chaîne de caractères avec python 3 #### Utiliser unicodedata >>> import unicodedata >>> s = 'Découvrez tous les logiciels à télécharger' >>> s 'Découvrez tous les logiciels à télécharger' >>> s_no_accents = ''.join((c for c in unicodedata.normalize('NFD', s) if unicodedata.category(c) != 'Mn')) >>> s_no_accents 'Decouvrez tous les logiciels a telecharger' #### Utiliser un package tiers [Unidecode](https://pypi.org/project

## How to remove string accents using python 3

How to remove string accents using python 3 #### Using unicodedata >>> import unicodedata >>> s = 'Découvrez tous les logiciels à télécharger' >>> s 'Découvrez tous les logiciels à télécharger' >>> s_no_accents = ''.join((c for c in unicodedata.normalize('NFD', s) if unicodedata.category(c) != 'Mn')) >>> s_no_accents 'Decouvrez tous les logiciels a telecharger' #### Using 3rd party package [Unidecode](https://pypi.org/project/Unidecode/) >>>

## How to replace the column of an array by the column of another array in python

Examples of how to replace the column of an array by the column of another array in python: [TOC] ### Array of same size Let's try to replace column (1) of the N array by the column (2) of the M array: >>> import numpy as np >>> M = np.array([[2,7,1],[3,3,1],[5,4,2],[0,1,8]]) >>> M array([[2, 7, 1], [3, 3, 1], [5, 4, 2], [0, 1, 8]]) >>> N = np.zeros((4,6)) >>> N[:,1] = M[:,2] >>> N array([[ 0., 1., 0., 0.,

## Remplacer une colonne d'un tableau par la colonne d'un autre tableau en python

Exemple de comment remplacer une colonne d'un tableau par la colonne d'un autre tableau avec numpy de python, ici remplacement de la colonne d'indice 1 de la matrice N par la colonne d'indice 2 de la matrice M >>> import numpy as np >>> M = np.array([[2,7,1],[3,3,1],[5,4,2],[0,1,8]]) >>> M array([[2, 7, 1], [3, 3, 1], [5, 4, 2], [0, 1, 8]]) >>> N = np.zeros((4,6)) >>> N[:,1] = M[:,2] >>> N array([[ 0., 1., 0., 0.,

## How to replace the row of an array by the row of another array with numpy

Examples of how to replace array line by another array line with numpy: [TOC] ### Array of same size let's try to replace array N line 2 by array M line 2: >>> import numpy as np >>> M = np.array([[2,7,1],[3,3,1],[5,4,2],[0,1,8]]) >>> N = np.zeros((6,3)) >>> N[2,:] = M[2,:] >>> N array([[ 0., 0., 0.], [ 0., 0., 0.], [ 5., 4., 2.], [ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]) ##

## Remplacer une ligne d'un tableau par la ligne d'un autre tableau en python

Exemple de comment remplacer une ligne d'un tableau par la ligne d'un autre tableau avec numpy de python, ici remplacement de ligne d'indice 2 de la matrice N par la ligne d'indice 2 de la matrice M >>> import numpy as np >>> M = np.array([[2,7,1],[3,3,1],[5,4,2],[0,1,8]]) >>> N = np.zeros((6,3)) >>> N[2,:] = M[2,:] >>> N array([[ 0., 0., 0.], [ 0., 0., 0.], [ 5., 4., 2.], [ 0., 0., 0.], [ 0., 0., 0.],

## How to change imshow colorbar label size in matplotlib

To change imshow colorbar label size in matplotlib, there is the [tick_params](https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.tick_params.html) function, example [images:imshow-colorbar-labelsize-01;imshow-colorbar-labelsize-02 dim:1*2 size:100 caption:How to change imshow colorbar label size in matplotlib] #!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt def f(x,y): return (x+y)*np.exp(-5.0*(x**2+y**2)) x,y = np.mgrid[-1:1:100j, -1:1:100

## Changer la taille du texte sur la barre de couleur avec imshow de matplotlib

Pour changer la taille du texte sur la barre de couleur avec imshow, il existe la fonction [tick_params](https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.tick_params.html) qui permet de modifier l'apparence de l'axe de la barre de couleur, exemple: [images:imshow-colorbar-labelsize-01;imshow-colorbar-labelsize-02 dim:1*2 size:100 caption:Changer la taille du texte sur la barre de couleur avec imshow de matplotlib ] #!/usr/bin/env python import numpy as np import matplotlib.py

## How to make background image transparent using python

An example of how to make background image transparent using python (image used here [open-science-logo.png](/Images/open-science-logo/)). <!DOCTYPE html> <html lang="en"> <body style="background-color: #3c3d41;"> <img src="open_science_logo.png" style="width:500px;margin: 200px 500px;"> </body> </html> [images:make-background-image-transparent-01;make-background-image-transparent-02 dim:1*2 size:100 caption:Rendre l'arrière-fond d'une image transparent avec python] Code