2012-10-20 16 views
119

Numpy, scipy, matplotlib e pylab sono termini comuni tra coloro che usano python per il calcolo scientifico.Confusione tra numpy, scipy, matplotlib e pylab

Ho appena imparato qualcosa su pylab e mi sono confuso. Ogni volta che voglio importare NumPy, posso sempre fare:

import numpy as np 

ho appena ritengo, che una volta che faccio

from pylab import * 

il NumPy verrà importato così (con np alias). Quindi in pratica il secondo fa più cose rispetto al primo.

Ci sono poche cose che voglio chiedere:

  1. è giusto che pylab è solo un wrapper per NumPy, SciPy e matplotlib?
  2. Come np è l'alias numpy in pylab, qual è l'alias scipy e matplotlib in pylab? (Per quanto ne so, è plt alias matplotlib.pyplot, ma non so l'alias per il matplotlib sé)
+4

Su una nota generale stile, vorrei evitare l'uso di pylab (e * le importazioni) al di fuori della shell interattiva. Pylab è comunque un po 'una strana appendice a matplotlib. – seberg

+0

@unutbu: grazie per il collegamento, questo rende le cose chiare. Penso che significhi anche che scipy è un modulo completamente diverso, e quindi non correlato a pylab – goFrendiAsgard

+4

@goFrendiAsgard: puoi controllare esattamente cosa importa pylab cercando in/usr/lib/pymodules/python2.7/matplotlib/pylab.py' (il percorso esatto è un po 'diverso per Windows o OSX, chiedi se hai bisogno di aiuto per trovarlo.) – unutbu

risposta

119
  1. No, pylab fa parte di matplotlib (in matplotlib.pylab) e cerca per darti un ambiente simile a MatLab. matplotlib ha un numero di dipendenze, tra cui numpy che importa sotto l'alias comune np. scipy non è una dipendenza di matplotlib.

  2. Se si esegue ipython --pylab un'immissione automatica inserirà tutti i simboli da matplotlib.pylab in ambito globale. Come hai scritto numpy viene importato sotto l'alias np. I simboli da matplotlib sono disponibili con l'alias mpl.

+9

@Benjamin Bannier Che cosa è questo allora - http://wiki.scipy.org/PyLab? Questo mi confonde. – shahensha

+0

@shahensha, sembra che ci siano * due * PyLab; per il link che hai inviato: "... differenza tra la visione di un ** nuovo PyLab ** espresso su questa pagina e il ** pacchetto pylab esistente che fa parte di matplotlib **" –

1

SciPy e NumPy sono progetti scientifici il cui scopo è di portare calcolo numerico efficiente e veloce a pitone.

Matplotlib è il nome della libreria di stampa Python.

Pyplot è un interattivo per matplotlib, principalmente per l'utilizzo in notebook come jupyter. Generalmente lo usi in questo modo: import matplotlib.pyplot as plt.

Pylab è la stessa cosa di pyplot, ma con funzionalità extra (il suo utilizzo è attualmente scoraggiato).

  • Approssimativamente, pylab = pyplot + NumPy

Visualizza maggiori informazioni qui: Matplotlib, Pylab, Pyplot, etc: What's the difference between these and when to use each?

+1

[Un altro esempio pubblicato direttamente su matplotlib sito] (https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-related) "Matplotlib, pyplot e pylab: come sono si riferivano ' Matplotlib' è il ** pacchetto completo **; 'matplotlib.pyplot' è un modulo ** in matplotlib **;' pylab' è un modulo che viene installato ** insieme a matplotlib. ** " –

Problemi correlati