Ajouts en le rendant public ...
Il existe de nombreuses options pour l'environnement de développement Python, et je me demande souvent laquelle utiliser pour mon travail. Ma réponse à cela surprend parfois les gens. Mon environnement préféré est d'utiliser Ipython et un éditeur de texte ensemble. (Dans mon cas, j'utilise Emacs et Atom correctement selon mon humeur) Ipython (abréviation de Interactive Python) a été développé par Fernando Perez en 2001 en tant qu'interprète Python étendu et est devenu un projet axé sur la production «d'outils pour tout le cycle de vie du calcul de recherche». Si python est le moteur de nos tâches de science des données Ipython peut être considéré comme un panneau de contrôle interactif.
Ipython est une interface interactive Python utile, mais apporte en même temps de nombreuses fonctionnalités (grammaticales) (étendues) utiles. (Les éléments suivants sont particulièrement utiles.) De plus, Ipython est étroitement associé au ** Jupyter Project **, qui développe des blocs-notes basés sur un navigateur pour nous aider à développer, collaborer, partager et présenter les résultats de la science des données. Les blocs-notes Ipython sont un cas particulier des nombreux blocs-notes Jupyter, y compris les blocs-notes pour Julia, R et d'autres langages de programmation. Un exemple de la commodité du format notebook est que vous n'avez pas besoin de regarder autre chose que la page que vous lisez. En effet, tous les manuscrits de ce livre sont constitués d'un ensemble de cahiers Ipython.
IPython est une utilisation efficace de python pour le calcul scientifique interactif et gourmand en données. Ce chapitre commence par entrer dans certaines des fonctionnalités d'Ipython utiles en science des données, en particulier la grammaire fournie par Ipython au-delà des fonctionnalités de base de python. Ensuite, nous entrons dans certains des mondes les plus utiles des «commandes magiques» qui peuvent accélérer les tâches quotidiennes de création et d'utilisation de programmes de science des données. Enfin, nous aborderons certaines des fonctionnalités du notebook qui nous aident à comprendre les données et à partager les résultats.
Il existe deux utilisations d'Ipython décrites dans ce chapitre. Shell Ipython et notebook Ipython. La plupart du contenu couvert dans ce chapitre concerne les deux, et les exemples présentés changeront en fonction de ce qui est le plus pratique. Il y a certaines parties qui ne concernent que l'un ou l'autre, mais dans ce cas, je vais le dire explicitement. Avant de commencer, parlons de la façon de lancer le shell Ipython et le notebook Ipython.
Ce chapitre n'est pas conçu pour être appris passivement (comme c'est le cas avec la plupart des livres). Lors de la lecture de ce chapitre, nous vous recommandons de l'essayer vous-même en utilisant la grammaire et les outils. La mémoire musculaire fournie par celui-ci est bien plus utile que ce qui est simplement obtenu en lisant ce chapitre. Commencez par taper ʻipython` sur la ligne de commande et lancez Ipython. Si vous avez installé Anaconda ou EPD, vous devriez avoir un lanceur approprié.
Lorsque vous tapez, vous devriez voir une invite comme celle-ci:
IPython 4.0.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]:
Vous êtes maintenant prêt à passer à autre chose.
Jupyter Notebook est une interface graphique IPython basée sur un navigateur avec un riche ensemble de fonctionnalités d'affichage dynamique. En plus de pouvoir exécuter la syntaxe Python / IPython, les utilisateurs peuvent inclure du texte formaté, des effets visuels statiques ou dynamiques, des formules, des widgets JavaScript, etc. dans leurs blocs-notes. De plus, ces documents peuvent être stockés dans un format que d'autres peuvent faire eux-mêmes.
Vous pouvez afficher et modifier les blocs-notes IPython dans la fenêtre du navigateur Web, mais vous devez connecter le navigateur Web au processus python pour exécuter le code python. Ce processus (également appelé noyau) peut être démarré en exécutant le code suivant dans le shell.
$ jupyter notebook
Cette commande démarre un serveur Web local que vous pouvez voir dans votre navigateur. Un journal de ce que fait ce serveur est immédiatement craché. Comme ci-dessous.
$ jupyter notebook
[NotebookApp] Serving notebooks from local directory: /Users/jakevdp/PythonDataScienceHandbook
[NotebookApp] 0 active kernels
[NotebookApp] The IPython Notebook is running at: http://localhost:8888/
[NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Après avoir exécuté cette commande, le navigateur par défaut devrait s'ouvrir automatiquement et vous diriger vers votre URL locale. (L'adresse réelle dépend de l'environnement.) Si le navigateur ne s'ouvre pas automatiquement, vous pouvez ouvrir la fenêtre manuellement en passant à l'adresse suivante. (Http: // localhost: 8888 / dans cet exemple)
Si vous n'avez pas l'intention de lire les autres sections de ce chapitre, lisez simplement cette section. Parce que j'ai trouvé que les outils discutés ici contribuaient le plus à améliorer IPython pour mon flux de travail. Lorsqu'une personne soucieuse de la technologie est sollicitée par un ami, un membre de sa famille ou un collègue au sujet d'un problème informatique, elle sait presque toujours comment trouver la réponse aussi rapidement qu'elle connaît la réponse au problème. C'est très important. Il en va de même dans le monde de la science des données. Les ressources Web consultables, telles que les documents en ligne, les fils de discussion de liste de diffusion et les réponses StackOverflow, sont riches en informations. Même si c'est (ou surtout) un sujet que vous avez recherché dans le passé. Devenir un véritable expert ne consiste pas tant à apprendre les outils et les commandes qui peuvent être utilisés dans n'importe quelle situation, mais à savoir avec quelle efficacité un moteur de recherche Web peut trouver des informations que vous ne connaissez pas.
L'une des fonctionnalités les plus utiles d'IPython / Jupyter est de combler le fossé entre les utilisateurs et les types de documents et les recherches pour faire le travail efficacement. Alors que la recherche sur le Web sert toujours à fournir des réponses à des problèmes complexes, une quantité surprenante d'informations ne peut être obtenue que via IPython. Vous trouverez ci-dessous un exemple de question à laquelle Ipython peut répondre en quelques touches. ・ Comment dois-je appeler cette fonction? Quels sont les arguments et les options? -Quel est le code source de cet objet python? -Que contient ce paquet importé? Quels sont vos attributs et méthodes? À partir de là, nous discuterons des outils d'Ipython qui vous donnent un accès rapide à ces informations. Autrement dit, "?" Pour rechercher des documents, "??" pour rechercher le code source et les touches de tabulation pour la saisie automatique.
Le langage python et son écosystème de science des données sont conçus avec les utilisateurs à l'esprit, et l'une des principales considérations est l'accès à la documentation. Tous les objets python contiennent des références à des chaînes appelées docstrings. Il s'agit le plus souvent d'un bref résumé de l'utilisation de l'objet. python a une fonction intégrée qui accède et affiche les informations help ()
. Par exemple, si vous souhaitez consulter la documentation de la fonction intégrée len
, procédez comme suit:
In [1]: help(len)
Help on built-in function len in module builtins:
len(...)
len(object) -> integer
Return the number of items of a sequence or mapping.
Selon l'interpréteur, ces informations peuvent être affichées sous forme de texte en ligne ou dans une fenêtre contextuelle distincte.
Comme il est courant et pratique de trouver de l'aide sur un objet, Ipython permet d'accéder à ce document et aux informations associées avec un court "?".
In [2]: len?
Type: builtin_function_or_method
String form: <built-in function len>
Namespace: Python builtin
Docstring:
len(object) -> integer
Return the number of items of a sequence or mapping.
Cette notation est valable pour tout, y compris les méthodes d'objets.
In [3]: L = [1, 2, 3]
In [4]: L.insert?
Type: builtin_function_or_method
String form: <built-in method insert of list object at 0x1024b8ea8>
Docstring: L.insert(index, object) -- insert object before index
Ou même l'objet lui-même a un document qui commence par des informations de type.
In [5]: L?
Type: list
String form: [1, 2, 3]
Length: 3
Docstring:
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
L'important est que cela fonctionne également pour les fonctions et vos propres objets! Supposons que vous définissiez une docstring comme celle-ci pour une petite fonction.
In [6]: def square(a):
....: """Return the square of a."""
....: return a ** 2
....:
Lors de la création d'une docstring pour cette fonction, veuillez noter que cette fois, nous n'avons écrit qu'une seule chaîne littérale. Ceci est dû au fait que le "" "de python est souvent utilisé sur plusieurs lignes et que les docstrings sont généralement sur plusieurs lignes.
Maintenant, utilisons "?" Pour trouver cette docstring.
In [7]: square?
Type: function
String form: <function square at 0x103713cb0>
Definition: square(a)
Docstring: Return the square of a.
Recommended Posts