Documentos oficiais: Matplotlib, pyplot e pylab: como estão relacionados?
Ambas as importações fazem exatamente a mesma coisa e executam exatamente o mesmo código, são apenas maneiras diferentes de importar os módulos.
Observe também que matplotlibtem duas camadas de interface, uma camada de máquina de estado gerenciada por pyplote a interface OO pyploté construída em cima, consulte Como posso anexar uma função pyplot a uma instância de figura?
pylabé uma maneira limpa de importar em massa uma série de funções úteis (a pyplotmaioria das funções da máquina de estado numpy) em um único espaço de nomes. A principal razão para isso existir (no meu entendimento) é trabalhar ipythonpara fazer um shell interativo muito bom que mais ou menos replique o MATLAB (para tornar a transição mais fácil e porque é bom para brincar). Ver pylab.pyematplotlib/pylab.py
Em algum nível, isso é puramente uma questão de gosto e depende um pouco do que você está fazendo.
Se você não estiver incorporando em uma interface do usuário (usando um back-end não interativo para scripts em massa ou usando um dos back-ends interativos fornecidos), a coisa típica a fazer é
import matplotlib.pyplot as plt
import numpy as np
plt.plot(....)
que não polui o espaço de nomes. Eu prefiro isso para poder acompanhar de onde as coisas vieram.
Se você usar
ipython --pylab
isso é equivalente a correr
from pylab import *
Agora é recomendado que, para novas versões de ipythonvocê, use
ipython --matplotlib
que configurará todos os detalhes de fundo apropriados para fazer os back-ends interativos funcionarem bem, mas não importará nada em massa. Você precisará importar explicitamente os módulos desejados.
import numpy as np
import matplotlib.pyplot as plt
é um bom começo.
Se você estiver embutindo matplotlibem um gui, você não deseja importar pyplot, pois isso iniciará loops principais de gui extras, e exatamente o que você deve importar depende exatamente do que você está fazendo.