Comment dans chaîne de caractères tout supprimer après un caractère donné

Présentation du problème: On souhaite écrire un script python pour parser un code fortran et on veut par exemple supprimer les commentaires qui en fortran sont après le caractère !. Pour cela en python on peut utiliser la fonction build-in [split()](http://www.pythonforbeginners.com/dictionary/python-split), illustration: >>> s = 'x = x + 1 ! comment' >>> s = s.split('!')[0] >>> s 'x = x + 1 ' Autre exemple >>> s = 'x = x + 1 ! comment ! dummy text' >>> s = s.split('!

Get all MODIS C6 MYD04 SDS names and attributes with python 2.7

Outputs of a code (see bottom of the page) written in python 2.7 to get all MODIS C6 MYD04 SDS names and attributes in python 2.7. All SDS infos (nd: number of dimensions, t: type, na: number of attributes): Id | name | nd | sds_dimension | t | na ------------- | ------------- | ------------- | ------------- | ------------- | ------------- 0 | Longitude | 2 | [203, 135] | 5 | 10 1 | Latitude | 2 | [203, 135] | 5 | 10 2 | Scan_Start_Time | 2 | [203, 135] | 6 | 10

Imshow avec deux colorbars sous matplotlib

Exemple de comment avoir une figure matplotlib avec deux colorbars (exemple inspiré du code source [suivant](http://stackoverflow.com/questions/22128166/two-different-color-colormaps-in-the-same-imshow-matplotlib)) [image:matplotlib-two-colormaps size:100 caption:Two colorbars Imshow matplotlib] On a ici de plus ajusté la taille de la colorbar à la figure ([voir](/Articles/Adapter-la-taille-de-la-colorbar-au-graphique-matplotlib/)) from mpl_toolkits.axes_grid1 import make_axes_locatable f

Ecrire un code en python pour illustrer le développement limité en 0 de cosinus

Exemple de comment implementer en python un code pour calculer le développement limité en 0 de la fonction cosinus: [image:dl0-cosinus size:100 caption:Ecrire un code en python pour illustrer le développement limité en 0 de la fonction cosinus] # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np import math #----------------------------------------------------------------------------------------# # Part I: Plot cosinus function xmin = -2.0*np.pi xmax = 2.0*n

Utiliser seulement certaines variables d'un module en Fortran 90

Exemple de comment utiliser seulement certaines variables d'un module en Fortran 90 (voir aussi la discussion sur [stackoverflow](http://stackoverflow.com/questions/1240510/how-do-you-use-fortran-90-module-data) sur le sujet) ### En utilisant: Only Module fortran (module_test.f90): module variables real, parameter :: pi = 3.1415927 real, parameter :: golden_ratio = 1.61803 real :: radius end module variables Programme principal (test_module.f90): program code_test use variables

Print all MODIS C6 MYD03 SDS names and attributes in python 2.7

Outputs of a code (see bottom of the page) written in python 2.7 to print all MODIS C6 MYD03 SDS names and attributes in python 2.7. All SDS infos (nd: number of dimensions, t: type, na: number of attributes): Id | name | nd | dimension | t | na ------------- | ------------- | ------------- | ------------- | ------------- | ------------- 0 | Latitude | 2 | [2030, 1354] | 5 | 3 1 | Longitude | 2 | [2030, 1354] | 5 | 3 2 | Scan Offset | 2 | [4060, 2708] | 20 | 4 3

Print all CALIOP v4 05kmCLay SDS names and attributes in python 2.7

Outputs of a code (see bottom of the page) written in python 2.7 to print all CALIOP v4 05kmCLay SDS names and attributes in python 2.7. All SDS infos (nd: number of dimensions, t: type, na: number of attributes): Id | name | nd | dimension | t | na ------------- | ------------- | ------------- | ------------- | ------------- | ------------- 0 | Profile_ID | 2 | [3744, 2] | 24 | 3 1 | Latitude | 2 | [3744, 3] | 5 | 3 2 | Longitude | 2 | [3744, 3] | 5 | 3 3 | Pr

Comment trouver le maximum ou minimum d'une matrice avec numpy de python ?

Exemples de comment trouver la valeur maximale ou minimale d'une matrice avec numpy de python: [TOC] ### Méthode 1: Avec numpy pour trouver la valeur maximum ou minimum d'une matrice (tableau) il existe les fonctions max() et min() respectivement, exemple: >>> import numpy as np >>> A = np.array(([2,7,-1],[1,9,8],[-1,5,6])) >>> A array([[ 2, 7, -1], [ 1, 9, 8], [-1, 5, 6]]) >>> np.min(A) -1 >>> np.max(A) 9 #

Obtenir les indices dans une boucle for sur les éléments d'une liste avec python

Pour parcourir les éléments d'une liste sous python on peut utiliser les une boucle for: >>> l = ['a','b','c','d','e','f'] >>> for e in l: ... print( e ) ... a b c d e f Maintenant si on veut aussi connaitre l'indice associé à un élément on peut utiliser [enumerate](https://docs.python.org/3/library/functions.html#enumerate), illustration: >>> for i,e in enumerate(l): ... print( i,e ) ... 0 a 1 b 2 c 3 d 4 e

Comment utiliser les processus Gaussien pour faire une regression ou une classification (en "machine learning") avec python 3 ?

Exemples de comment utiliser les processus Gaussien pour faire une regression ou une classification (en "machine learning") avec python 3: [TOC] ### Exemple avec des données 1D from numpy.linalg import inv import matplotlib.pyplot as plt import numpy as np X = np.array([1., 3., 5., 6., 7., 8.]) Y = X * np.sin(X) X = X[:,np.newaxis] sigma_n = 1.5 plt.grid(True,linestyle='--') plt.errorbar(X, Y, yerr=sigma_n, fmt='o') plt.title('Gaussian Processes for

Print all MODIS C6 MYD08 M3 SDS names and attributes in python 2.7

Outputs of a code (see bottom of the page) written in python 2.7 to print all MODIS C6 MYD08 SDS names and attributes. All SDS infos (nd: number of dimensions, t: type, na: number of attributes): Id | name | nd | dimension | t | na ------------- | ------------- | ------------- | ------------- | ------------- | ------------- 0 | Solar_Zenith_Mean_Mean | 2 | [180, 360] | 22 | 13 1 | Solar_Zenith_Mean_Std | 2 | [180, 360] | 22 | 13 2 | Solar_Zenith_Mean_Min | 2 | [180,

Algorithme du gradient (gradient descent) avec python

### Test avec une fonction à une dimension [image:gradient-descent-1d-python size:50 caption:Algorithme du gradient (gradient descent) avec python (1D)] from scipy import misc import matplotlib.pyplot as plt import numpy as np #----------------------------------------------------------------------------------------# # Function Definition def fonction(x): return 3*x*x+2*x+1 #----------------------------------------------------------------------------------------#

Comment placer un nuage de points devant une droite avec matplotlib ?

Par défaut avec matplotlib, si on trace une droite et un nuage de points, les points sont placés en arrière-plan: [image:scatter-points-order-01 size:50 caption:Tracer un nuage de points devant une droite avec matplotlib (1/2) (line in background)] import matplotlib.pyplot as plt x = [1,2,3,4,5,6,7,8,9] y = [1,2,3,4,5,6,7,8,9] plt.plot([0,10],[0,10]) plt.scatter(x,y,s=300,color='red') plt.title("Tracer un nuage de points devant une droite") plt.grid() plt.savefig("sc

Setup a python workspace to start working with satellite data

Python basic workspace installation to work with satellite data (MODIS, CALIOP, etc) ### Install anaconda python distribution To install python and an ensemble of very useful python libraries go to [Anaconda](https://www.continuum.io/download) python distribution. Click on graphical installer python 3.+ version and then double click on the package. [images:conda-01;conda-02 dim:1*2 size:100 caption:Setup a python workspace to start working with satellite data (1/2)] Open the terminal and ch

Augmenter l'épaisseur d'une ligne avec matplotlib

Pour augmenter l'épaisseur d'une ligne avec matplotlib il y a l'option [linewidth](http://matplotlib.org/users/pyplot_tutorial.html), illustration: [image:increase-line-width-matplotlib size:100 caption:Comment augmenter l'épaisseur d'une ligne avec matplotlib] import matplotlib.pyplot as plt plt.plot([0,10],[0,10]) plt.plot([0,10],[0+3,10+3], color='b', linewidth=20) plt.plot([0,10],[0+6,10+6], color='b', linewidth=40) plt.title("Increase line width Matplotlib") plt.grid() plt.savefi

Comment ajouter une légende pour un nuage de points avec matplotlib ?

Exemples de comment ajouter une légende pour un nuage de points avec matplotlib: [TOC] ### Ajouter une simple légende pour un nuage de points Exemple de comment ajouter une légende pour un nuage de points de deux couleurs avec la fonction [legend()](http://stackoverflow.com/questions/17411940/matplotlib-scatter-plot-legend): [image:ScatterPlot-09 size:50 caption:Comment ajouter une légende pour un nuage de points avec matplotlib ?] import matplotlib.pyplot as plt x = [1,2,3,

Calculer le déterminant d'une matrice avec python et numpy

Pour calculer le déterminant d'une matrice avec python il existe la fonction [det()](https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.det.html), exemple >>> import numpy as np >>> a = np.array(([-1,2],[-3,4])) >>> np.linalg.det(a) 2.0000000000000004 autre exemple >>> a = np.array(([-2,2,-3],[-1,1,3],[2,0,-1])) >>> a array([[-2, 2, -3], [-1, 1, 3], [ 2, 0, -1]]) >>> np.linalg.det(a) 17.999999999999996 Remarque: on

Convert MODIS day-of-year (julian date) to yyyymmdd date format using python

Simple exemple on how to convert MODIS day-of-year (also called julian date even if the definition of julian date is not exactly the same thing) to MM/DD/YYYY date format using python import calendar def JulianDate_to_MMDDYYY(y,jd): month = 1 day = 0 while jd - calendar.monthrange(y,month)[1] > 0 and month <= 12: jd = jd - calendar.monthrange(y,month)[1] month = month + 1 print month,jd,y JulianDate_to_MMDDYYY(2008,167) Results: 6 15 2008 Checking the code (inverse op

Comment utiliser latex et passer à la ligne dans du texte sous matplotlib

Exemple avec le titre d'une figure matplotlib, pour passer a la ligne on peut uliser la balise \n comme ceci plt.title('Long long long long long long \n title ') pour utiliser Latex dans le titre il suffit de mettre en r minuscule avant '' et d'utiliser les balises $$, exemple: plt.title(r'Latex in the title $30.0 \mu m$') Par contre pour combiner latex et un passage à la ligne on ne peut pas faire comme ceci: plt.title(r"Latex $30.0 \mu m$ and Long long long long long long \n t

Tracer un point ou une droite sur une image avec matplotlib

Exemples de comment tracer un point ou une droite sur une image avec matplotlib. [TOC] ### Tracer un point au dessus d'imshow avec matplotlib Objectif: tracer un point pour indiquer un minimum global: [images:draw-on-image-00;draw-on-image-01 dim:1*2 size:100 caption:'Tracer un point ou une droite sur une image avec matplotlib '] 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:100j]

Ecrire un code fortran pour calculer la dérivée en un point d'une fonction

Exemple de comment programmer une dérivée en un point en fortran 90: program derivative_function implicit none integer, parameter :: pr = selected_real_kind(15,3) real(pr) :: x,h real(pr) :: der_estimate, previous_der_estimate real(kind=16) :: f integer :: i,n x = 2.0 h = 1.0 n = 10 do i = 1, 10 der_estimate = ( f(x+h) - f(x) ) / h if( i == 1) write(6,*) h, der_estimate if( i > 1) write(6,*) h, der_estimate, der_estimate - previous_der_estimate previous_der_estima

Déterminer le nombre de clés dans un dictionnaire sous python

Pour déterminer le nombre de clés dans un dictionnaire sous python il existe la fonction "built-in" [len()](https://docs.python.org/3.5/library/functions.html#len), exemple: >>> d = {'a':1,'b':2,'c':3,'d':4,'e':5} >>> len(d) 5 ou >>> len(d.keys()) 5 ### Références Liens | Site ------------- | ------------- [Built-in Functions](https://docs.python.org/3.5/library/functions.html#len) | python doc [Counting the Number of keywords in a dictionary in python](http://stackover

Sélectionner aléatoirement des éléments d'une liste ou d'un dictionnaire sous python

Pour sélectionner aléatoirement des éléments d'une liste sous python on peut utiliser la fonction [random. choice()](https://docs.python.org/2/library/random.html): >>> import random >>> l = [i for i in range(10)] >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> random.choice(l) 1 >>> random.choice(l) 6 Marche aussi avec un dictionnaire: >>> import random >>> d = {'a':1,'b':2,'c':3,'d':4,'e':5 >>> random.choice(d.keys()) 'c' >>> random.choice(d.keys

Tracer un histogramme avec un intervalle fixe sous matplotlib

Avec matplotlib pour un avoir intervalle fixe pour un histogramme, il existe l'option [bins](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist) (plt.hist(data, bins=bins), il suffit de lui donne un intervalle (liste ou une matrice 1d), exemple pour avoir un intervalle fixe pour deux histogrammes: [image:two-histograms-03 size:100 caption:Tracer deux histogrammes dans une figure matplotlib (3/3)] import numpy as np import matplotlib.pyplot as plt bins = np.linspace(-5, 15, 10

Tracer deux histogrammes dans une figure matplotlib

Pour tracer un histogramme à partir d'un ensemble de données il existe la fonction matplotlib [hist()](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist). Pour tracer deux histogrammes on peut donc tout simplement faire appelle deux fois a cette fonction, exemple: [image:two-histograms-01 size:100 caption:Tracer deux histogrammes dans une figure matplotlib (1/3)] import numpy as np import matplotlib.pyplot as plt data1 = np.random.randn(100000) plt.hist(data1, bins=25, no