Module Galilée avec Pandas!

J’ai l’honneur de vous annoncer la publication du module Galilée réalisé par mes soins !

Ne voulant rien faire comme tout le monde, j’ai réalisé le module sans LibreOffice, mais entièrement en code Python. Grâce à la bibliothèque Pandas (comme les ours qui ressemblent à des vaches normandes) qui permet de traiter des données comme un tableur et d’afficher des graphiques, le résultat est analogue à LibreOffice.

Pour chaque graphique, le code Python est fourni.

Le tout a été réalisé entièrement dans Firefox, grâce à JupyterLab !

Bonne lecture…

http://vit.free.fr/website/monnaie/modules/galilee/module_galilée.html

PS:

Si vous voulez bidouiller vous-même le code avec Jupyter, vous pouvez télécharger le fichier Jupyter Notebook :

http://vit.free.fr/website/monnaie/TRM.html#module-galilee

12 J'aimes

Bravo pour la cohabitation Python - Pandas ! :slight_smile:

3 J'aimes

Salut Vincent,

J’ai juste commencé à lire, après avoir survolé l’ensemble. C’est beauuuu ! Sacré boulot !
Premières questions (en attendant de pousser plus loin) :

  • get_du a la forme max(last_DU, last_DU + (math.pow(c, 2) * (M / N)))
    Pourquoi ce max ?
  • l’initialisation DU = [get_du(c, M[0], N, DU0)] ne pourrait-elle pas être plus simplement DU = [DU0]

Bon, je pense que les deux questions sont liées.

Merci ! Entre l’apprentissage de Pandas et de mathplotlib et comprendre l’énoncé… cela a été un sacré chantier. Mais je suis satisfait du résultat. Pouvoir résoudre les questions de la TRM en quelques lignes de code me ravi !

Pour faire comme Duniter. J’ai pas trop réfléchi là-dessus. Mais on peut l’enlever et regarder ce que cela change.

Oui au début je faisais cela. Mais les comptes démarraient à zéro. Quand j’ai décidé de commencer avec des valeurs réparties de part et d’autre de la moyenne, j’ai été obligé de faire ça. Cela permet de changer facilement les valeurs de départ des comptes sans toucher au code.

1 J'aime

Bravo ! Super travail ! Ca fait 6 mois que j’ai envie de faire la même chose… et pour l’instant à part avoir installer Jupyterlab je n’ai pas progressé d’un iota !

Ca va me donner des idées ! Merci !

1 J'aime

Le truc est très bien dans l’ensemble mais j’ai vu deux ou trois trucs qui me paraissent curieux à première vue.

Certains graphes ne paraissent pas lisses alors qu’ils devraient l’être, il donc y avoir une erreur d’indice, de formule quelque part…

Je n’ai pas vu d’évolution des prix relativement à une valeur de référence pertinente (par exemple le prix du pain a été choisi sur 1 module Galilée par je sais plus qui…), reprendre des données déjà utilisées dans des modules déjà réalisés n’est pas pertinent.

Excellent, voila l’animal qui manquait dans l’Arche :wink: Depuis un moment, il me prend l’envie d’implémenter une ML basée sur cette convergence http://vit.free.fr/website/monnaie/modules/galilee/module_galilée.html#graphique-en-relatif

On pourrait alors imaginer les « joueurs » entrer avec une masse aléatoire ou corrélée à un truc (à choisir), ou directement à la moyenne. Puis l’algo ML agit… Une config sympa à introduire dans un simulateur de monde minetest par exemple :wink:

Je vais voir si j’arrive à dérouler ce python enroulé en panda…

Comme Stéphane, je pense que tu as des décalages dans des indices quelque part, je te fais un retour dès que je trouve du temps pour creuser cette affaire.

Hum… Tu veux dire dans le code de Duniter ?

Hormis si c est un imaginaire, son carré ne peut être négatif ; et M/N négatif, ce serait étrange aussi. Donc max(last_DU, last_DU + (math.pow(c, 2) * (M / N))) retournera toujours last_DU + (math.pow(c, 2) * (M / N)), non ?

Je crois que l’on en a parlé à Toulouse : as-tu étudié la possibilité de créer un notebook Jupyter. Je n’en ai encore jamais utilisé, mais j’ai l’impression que le résultat serait sensiblement le même, hormis que le code python serait éditable et exécutable par les visiteurs, permettant ainsi de tester d’autres choses. D’ailleurs, je pense que quand tes tests sont concluants, tu peux sauvegarder sous un nouveau nom le notebook que tu viens de modifier et le publier.

1 J'aime

@Galuel Pour les graphiques qui ne sont pas lisses, ok je vais regardé ça. Je me plante toujours sur les index. C’est ma marque de fabrique… :wink:

Pour la valeur ben j’ai pris une de celles proposées par le module. Je vais voir si je trouve une nouvelle valeur qui m’intéresse.

JupyterLab, n’est que l’interface web améliorée de Jupyter. Je travaille sur un notebook Jupyter classique au final. Il faut juste que je le mette à dispo oui.

Ah ben oui tu as raison… Bon ben je vais le virer. Merci !

Le fichier Jupyter Notebook est à disposition en téléchargement :

http://vit.free.fr/website/monnaie/TRM.html#module-galilee

Merci !
Plus de rouge pour I1, maintenant, c’est du mangenta et ça change tout !

2 J'aimes

Ca y est, j’ai travaillé sur le notebook, si ça t’interesse, il est ici (je n’ai pas changé que des couleurs !) : http://cuckooland.free.fr/SharedFiles/module_galilée.ipynb

Parmi les changements, il y en a trois qui aident bien à détecter les problèmes d’indice :

  • la fonction « get_du » a été modifiée pour pouvoir changer facilement la formule du DU utilisée ;
  • une variable « account0 » a été ajoutée pour pouvoir passer facilement de « monnaie pleine » à « monnaie non pleine » ;
  • une colonne « Moyenne Pleine » a été ajoutée correspondant à DU/c.

L’idée est de se placer en monnaie pleine pour vérifier qu’en passant d’une formule à une autre, les valeurs obtenues restent inchangées (et on peut reconnaitre des séquences classiques du genre [10, 11, 12.1, etc.]). De plus, en monnaie pleine, « Moyenne » et « Moyenne Pleine » doivent être identiques.

Autre chose, n’étant pas à l’aise avec Python et Pandas, c’est le prochain DU, et non pas le précédent, qui est utilisé pour le relatif. Du coup, la convergence se fait vers 10 (soit 1/c) au lieu de 11 (soit (1+c)/c).

2 J'aimes

Même si le fait de prendre le prochain DU me gêne un peu car N est inconnu et on fait donc là une supposition, tes apports sont salutaires !

Si tu m’y autorise, puis-je publier ta version modifiée en te citant, en lieu et place de la mienne, sur mon site ?

Merci Vincent. Je suis d’accord, c’est une pratique courante, mais je ne la trouve pas naturelle du tout. Je te propose une autre version où c’est le DU précédent qui est utilisé pour le relatif :

http://cuckooland.free.fr/SharedFiles/module_galilée_11DU.ipynb

J’aurais bien essayé de fusionner les deux pour pouvoir passer facilement d’un mode à l’autre, mais j’ai peur que cela complexifie trop le code.

Il y a encore un truc que je veux étudier : quand N varie, la moyenne varie mais je n’arrive pas à voir si la forme est juste (surtout dans le cas des référentiels à somme nulle). N’hésite pas à y jeter un oeil, cela doit être une erreur à la c…

Oui, bien sûr.

1 J'aime