140 votes

Confusion entre numpy, scipy, matplotlib et pylab

Numpy, scipy, matplotlib et pylab sont des termes courants parmi ceux qui utilisent python pour le calcul scientifique.

Je viens d'apprendre un peu de choses sur pylab, et je me suis embrouillé. Chaque fois que je veux importer numpy, je peux toujours le faire :

import numpy as np

Je considère juste, qu'une fois que j'aurai fait

from pylab import *

le numpy sera également importé (avec np alias). En fait, le second fait plus de choses que le premier.

Il y a plusieurs choses que je veux demander :

  1. Est-il exact que pylab n'est qu'une enveloppe pour numpy, scipy et matplotlib ?
  2. Comme np est l'alias de numpy dans pylab, quel est l'alias de scipy et matplotlib dans pylab ? (pour autant que je sache, plt est l'alias de matplotlib.pyplot, mais je ne connais pas l'alias de matplotlib lui-même).

4 votes

D'un point de vue général, j'éviterais d'utiliser pylab (et les importations *) en dehors du shell interactif. Pylab est un peu un appendice bizarre de matplotlib de toute façon.

0 votes

@unutbu : merci pour le lien, cela clarifie les choses. Je pense que cela signifie également que scipy est un module entièrement différent, et donc sans rapport avec pylab.

4 votes

@goFrendiAsgard : Vous pouvez inspecter exactement ce que pylab importe en regardant dans /usr/lib/pymodules/python2.7/matplotlib/pylab.py (le chemin exact est un peu différent pour Windows ou OSX ; demandez si vous avez besoin d'aide pour le trouver).

134voto

Benjamin Bannier Points 11953
  1. Non, pylab fait partie de matplotlib (en matplotlib.pylab ) et tente de vous offrir un environnement similaire à celui de MatLab. matplotlib a un certain nombre de dépendances, parmi lesquelles numpy qu'il importe sous l'alias commun np . scipy n'est pas une dépendance de matplotlib .

  2. Si vous exécutez ipython --pylab une importation automatique mettra tous les symboles de matplotlib.pylab à l'échelle mondiale. Comme vous l'avez écrit numpy est importé sous le nom de np alias. Les symboles de matplotlib sont disponibles dans le cadre de la mpl alias.

9 votes

@Benjamin Bannier Qu'est-ce que c'est alors - wiki.scipy.org/PyLab ? Cela me perturbe.

0 votes

@shahensha, on dirait qu'il y a deux PyLabs ; selon le lien que vous avez envoyé : "...la différence entre la vision d'une nouveau PyLab exprimé sur cette page, et le paquet pylab existant qui fait partie de matplotlib "

17voto

Felipe Almeida Points 2026

Scipy et numpy sont des projets scientifiques dont l'objectif est d'apporter un calcul numérique efficace et rapide à python.

Matplotlib est le nom de la bibliothèque de traçage python.

Pyplot est une api interactive pour matplotlib, principalement pour une utilisation dans des notebooks comme jupyter. Vous l'utilisez généralement comme ceci : import matplotlib.pyplot as plt .

Pylab est la même chose que pyplot, mais avec des fonctionnalités supplémentaires (son utilisation est actuellement déconseillée).

  • pylab \= pyplot + numpy

Plus d'informations ici : Matplotlib, Pylab, Pyplot, etc : Quelle est la différence entre ces logiciels et quand les utiliser ?

4voto

jamescampbell Points 4293

Puisque certaines personnes (comme moi) peuvent encore être confuses quant à l'utilisation de pylab depuis les exemples utilisant pylab sont présentes sur Internet, voici une citation de la FAQ officielle de matplotlib :

pylab est un module de commodité qui importe en bloc matplotlib.pyplot (pour le traçage) et numpy (pour les mathématiques et le travail avec des tableaux) dans un seul espace de nom. Bien que de nombreux exemples utilisent pylab, il n'est plus recommandé.

Donc, TL;DR ; est de ne pas utiliser pylab, période. Utilisez pyplot et d'importer numpy séparément si nécessaire.

Voici le lien pour de plus amples informations et d'autres exemples utiles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X