25 mars 2020

JUPYTER

 Un petit article assez court sur un outil que je trouve très sympa pour développer en PYTHON.

 

Signification

Jupyter est une concaténation de "julia" + "python" + "R" qui sont 3 langages de programmation.

 

Concept

Lorsque vous développez un logiciel, outil, algorithme dans un langage de programmation interprété comme ceux listés ci-dessus, vous avez entre autres les alternatives suivantes :
  • Taper le code dans un éditeur de texte (notepad ++, sublime text .....) puis exécuter le fichier ainsi créé avec l'interpréteur adéquat.
  • Coder directement dans une console de commande, donc il faut dans ce cas programmer ligne par ligne.
  • Utiliser un environnement de développement (SPYDER, R-STUDIO, ...)
 Ces méthodes ont leurs avantages et leurs inconvénients. Parmi les inconvénients il y a :
  • Le code, les commentaires et les résultats sont séparés en terme de présentation
  • Les résultats des calculs (graphiques, résultats numéraires ...) ne sont pas conservés
Par exemple, si vous avez pour objectif de rédiger un article technique, scientifique, en data science ou autre, il serait intéressant de pouvoir mixer le code, du texte (bien présenté, avec des titres, sous-titres ..), du code, des graphiques, comme ici https://anaconda.org/jbednar/nyc_taxi/notebook ... sympa non ?

Le principe de JUPYTER est donc justement de pouvoir coder dans une interface WEB directement (donc en utilisant votre navigateur), et de mixer les commentaires, code, résultats ou graphiques.


Cas d'emploi

JUPYTER est par exemple l'outil de base utilisé sur Kaggle. J'y reviendrais surement, Kaggle est un site de challenges pour data-scientists. 
JUPYTER est souvent utilisé aussi pour rédiger des articles scientifiques.


Installation

Vous pouvez utiliser JUPYTER de deux manières : 
     

Outils en ligne

Pour aller un peu plus loin, de nombreux éditeurs proposent leur version en ligne de notebooks basés sur JUPYTER, la plupart du temps ces outils ont une version gratuite (en limitant les ressources disponibles ou le nombre de notebooks qu'on peut enregistrer. Parmi les plus populaires
L'avantage de ces environnements "éditeurs" est que vous y trouverez de nombreux exemples et ressources.
Autre gros avantage par rapport à une utilisation "locale", chez google vous pouvez exécuter vos notebooks sur des processeurs dédiés au machine learning et plus spécifiquement aux réseaux de neurones : les TPU (tensor processing units).

11 août 2018

CENTAURUS

J'innove un peu pour ce nouvel article et je vais aborder l'une de mes passions, la BD.

LEO (Luiz Eduardo de Oliveira), est un auteur de bande dessinée brésilien de langue française né à Rio de Janeiro (Brésil) le 13 décembre 1944.

Plusieurs de ses œuvres exploitent le thème de l'exploration spatiale  en vue de trouver une planète habitable pour la coloniser (voir le cycle Aldebaran, Terres lointaines ...)

CENTAURUS est une histoire composée de 4 albums et est tout à fait dans ce thème.

L'histoire commence dans une station spatiale en forme de cylindre (appelé cylindre O'NEILL du nom d'un physicien qui a le premier proposé ce type d'habitat spatial). A noter qu'on retrouve ce type de station spatiale dans des roman comme Rendez-vous avec Rama d'Arthur C. Clarke.

Le tome 1 (voir image) se déroule au moment ou la station arrive près de la planète Vera, satellite de l'étoile Proxima Centauri (d'où le nom de la BD), "Proxima" pour proximité puisque c'est l'étoile la plus proche du système solaire.

L'ensemble de la saga se compose de 4 tomes. Les dessins sont comme d'habitude très soignés et superbes. Il s'agit bien sûr de science fiction, néanmoins l'ensemble reste très crédible et scientifiquement assez réaliste (LEO est ingénieur de formation ce qui explique peut-être cela). L'histoire et le dessin sont envoutants, un peu oniriques, on aimerait faire partie de l'expédition, on s'identifie aux personnages, a lire sans tarder si vous aimez la BD et la science fiction.


28 décembre 2016

PAYPAL ... ou PAYEPAS ?

Comme beaucoup de gens je revends mes cadeaux (ou ceux des enfants) sur les sites de petites annonces du web. La plupart du temps pour les objets un peu chers j'essaie de vendre en local ou alors de passer par des sites comme "Priceminister" qui s'occupent de gérer la transaction et les modalités d'expédition, car les moyens de paiements / virements distants sont sources de beaucoup d'arnaques.

23 août 2016

OpenRefine


Pour mes sites Web, en particulier IDSORTIE, je suis souvent amené à me battre avec des listes de données structurées mais nécessitant des corrections, des nettoyages, tris, traitements .... 
Bien sûr on peut utiliser Excel / LibreOffice pour ce genre de travail, mais on se rend bien compte que ces outils ne sont pas fait pour çà, et qu'on en est réduits à faire beaucoup d'acrobaties pour en arriver au résultat escompté.

Cà fait donc un moment que je cherche une alternative aux tableurs pour ce genre de travail, et grâce à ma précédente lecture je suis tombé sur OpenRefine. Cet outil (anciennement Google Refine !!) fait partie des " Interactive Data Transformation tools (IDTs)", on peut résumer ce genre d'outils comme un tableur nourri aux hormones, mais dépouillé de tout ce qui est inutile dans le traitement de données. 

Installation : OpenRefine se télécharge sur le site officiel, et nécessite comme pré-requis une version Java récente. L'application s'exécute en local et son IHM s'affiche dans le navigateur par défaut comme une page web.

Les principales fonctionnalités d'OpenRefine sont :
  • Import de données de tout poil (csv, excel, ...) par fichier, par copier/coller, par URL ...
  • Tri, filtrage
  • Traitements unitaires sur les données à base de différents langages (Python, GREL)
  • Création de données à partir d'API Web (par exemple géocoding d'adresses) automatiquement appliquées à tout un jeu de données
  • Regroupement de données similaires
  • Recherche d'anomalies sur les données
  • Recherche de doublons
....
Bref c'est l'outil que je cherchais depuis un moment.

18 août 2016

Slither.io : Chapitre 3.2

On avance petit à petit dans l'analyse du jeu Slither, voici un nouveau chapitre consacré à l'écran d'accueil et comment sont créés les différents éléments graphiques.

12 août 2016

Livre : Web Scraping with Python de Ryan MITCHELL



Définition wikipedia : Le web scraping est une technique d'extraction du contenu de sites Web, via un script ou un programme, dans le but de le transformer pour permettre son utilisation dans un autre contexte, par exemple le référencement ....

Même s'il n'en a pas l'épaisseur, ce livre est une bible. Que vous soyez débutant ou déjà un peu expérimenté en scraping, je vous conseille la lecture de ce livre.

Si comme moi vous êtes convaincu que Python est "le" langage / boite à outil pour le Web Scraping, vous en aurez confirmation dans cet ouvrage.
Tous les aspects techniques sont abordés :
  • les principaux outils (requests, selenium, beautifull soup ...)
  • les outils natifs de python (regex ....)
  • traitement d'images
J'ai pas mal galéré personnellement dans ce domaine, j'ai pris du temps à faire le tour de la question avant de pouvoir construire ma boite à outils et acquérir les connaissances minimales nécessaires, mais c'était avant de connaitre ce livre, avec mon recul je trouve que l'ensemble des problématiques sont abordées dans cet ouvrage et j'aurais gagné pas mal de temps à le lire en premier.

Seul bémol, il est disponible uniquement en Anglais, mais pour la majorité des informaticiens çà ne devrait pas poser trop de soucis.