XD blog

blog page

python


2013-01-31 Quelques règles de survie pour travailler à plusieurs

Le document suivant décrit brièvement quelques règles qui peuvent aider si on les suit lorsqu'on se lance dans un programme informatique à plusieurs ou même seul. Elles ne sont pas ni difficiles ni agaçantes si on les applique dès le début du projet. En résumé :

Si vous aimez les nouvelles technologiques type cloud, il devient relativement facile aujourd'hui de travailler à plusieurs sans avoir à s'échanger constamment des fichiers par emails. DropBox et TortoiseSVN permettent assez rapidement d'échanger des informations et de garder l'historique des modifications.

2013-01-30 Graph matching and alignment

Pipelines became a quite popular way to represent a workflow. Many tools such as RapidMiner, Orange or Weka use graphs to represent the sequence of processes data follow. Most of the time, between two experiments, we just copy paste a previous one, we add or delete a few nodes. After a while, it becomes uneasy to find out what modifications were made. I was wondering how it would be possible to automate such a task. How to find what modifications were introduced in a graph ?

Graph 1 Graph 2 Two graphs we would like to merge into a single one. Vertices 00 and 11 represents the only root and the only leave.


more...

2013-01-28 Répéter les mêmes modifications sur une table

Excel est très pratique pour tracer des graphiques, écrire des formules dans une table. La seule contrainte vient parfois du fait qu'on se retrouve à faire la même chose plusieurs fois de suite. On doit produire les mêmes statistiques sur les mêmes données ou presque les mêmes : la matrice a deux colonnes en plus et trois lignes en moins. Ce n'est pas toujours évident d'adapter ses feuilles Excel. Aujourd'hui, je devais répéter la même formule sur dix colonnes différentes. J'ai donc décider de faire ça en Python. Je voulais écrire quelque chose comme ça :

table.add_column ( "has_A" + k, lambda v : 1 if "prenom" in v["name"] else 0 )
L'avantage est que je peux maintenant écrire quelque chose comme :
for name in selection_colonnes :
    table.add_column ( "has_" + name, lambda v : 1 if "mot clé" in v[name] else 0 )
ou encore
group = table.groupby ( lambda v: v["name"],
                        [ lambda v: v["d_a"], 
                          lambda v: v["d_b"] ],
                        [ "name", "sum_d_a", "sum_d_b"] )
et
innerjoin = table.innerjoin (group, lambda v : v["name"], 
                                    lambda v : v["name"], "group" )

Il ne me reste plus qu'à récupérer le tout sous Excel pour faire des graphiques ou faire de la mise en page. J'ai dû le coder plusieurs fois sous différentes formes. Voici la dernière.

2012-12-22 ENSAE, initiation à la programmation, suggestions de projets

Voici la liste des suggestions de projets. proposées cette année dans le cadre du projet informatique du second semestre. Ce projet doit être effectué de préférence par groupe de deux élèves. Chaque groupe sera suivi par un enseignant, à raison de quatre suivis d'une demi-heure entre février et avril. Une soutenance aura lieu au mois de mai.

Le projet consiste en la réalisation d'un programme informatique, d'un rapport expliquant la démarche et les résultats obtenus et d'une soutenance orale. La note dépend de ces trois exercices (elle ne dépend pas de la taille du programme informatique). Le programme peut être réalisé dans un autre langage que Python. Chaque groupe est encouragé à proposer un sujet de son choix.

Le document lié plus haut contient toutes les références nécessaires autour des sujets suivants :

2011-11-13 Résoudre un puzzle

C'est un cadeau que j'ai reçu à Noël sous forme de puzzle. A vrai dire, je n'ai même pas essayé de résoudre le puzzle moi-même. mais je me suis qu'en scannant les pièces du puzzle (au nombre de neuf), je devrais être en mesure d'écrire un programme pour le résoudre à ma place. Il contient neuf pièces carrées avec des haut et des bas de girafes de couleurs différentes et qu'il faut recoller. Ce document décrit comment je m'y suis pris.

Vous trouverez dans ce fichier zip tous les fichiers nécessaires pour résoudre le puzzle. Le programme est aussi visible ici : girage_affichage.py.


<--

Xavier Dupré