Что такое% pylab?
Я вижу, что люди используют %pylab
в различных фрагментах кода, особенно в iPython. Тем не менее, я не вижу, где %pylab
упоминается где угодно в Learning Python (и нескольких других моих книгах Python), и я не уверен, что это значит.
Я уверен, что ответ прост, но может ли кто-нибудь просветить меня?
Ответы
Ответ 1
%pylab
- волшебная функция в ipython.
Магические функции в pylab всегда начинаются с знака процента (%), за которым следует
любые пробелы с помощью небольшой текстовой строки; в сущности, магические функции ipython определяют
ярлыки, особенно полезные для интерактивной работы, например,
чтобы дать вам представление о том, как магические функции работают в python, некоторые из моих избранных:
-
для просмотра содержимого каталога cwd:
%ls
-
для запуска script в ipython с использованием пустого пространства имен, введите пробел, а затем имя script:
%run
-
выполнить фрагмент кода (особенно для многострочных фрагментов, которые обычно вызывают _IndentationError_):
%paste
Когда волшебная функция %pylab
вводится в приглашении IPython, она запускает
импорт различных модулей в Matplotlib.
Какие модули? ну, те, которые подпадают под интерфейс pylab.
У потрясающей библиотеки построения Matplotlib есть два различных интерфейса: пифонический и оригинальный MATLAB-подобный, предназначенный для построения в интерактивном приглашении.
Первый обычно импортируется так:
from matplotlib import pyplot as PLT
Действительно, у pyplot есть своя волшебная магическая функция python
%pyplot
Почему два разных интерфейса? Первоначальным интерфейсом Matplotlib был pylab; только
позже был добавлен интерфейс pythonic. Разработка сценариев и приложений не была
основные случаи использования для Matplotlib при запуске проекта, построение графика в
оболочка python была.
Очевидно, что Джон Хантер (создатель Matplotlib) хотел включить интерактивный сюжет в python, чтобы он представил патч для проекта IPython Фернандо Переса (FP). В то время FP был студенткой PhD и сообщил JH, что он не сможет некоторое время пересмотреть этот путь. В результате JH создал Matplotlib. Значимость заключается в том, что Matplotlib начался как схема построения схемы на основе оболочки.
интерфейс pylab действительно более подходит для интерактивной работы:
from pylab import *
x, y = arange(10), cos(x/2)
plot(x, y)
show()
и используя интерфейс pyplot:
from matplotlib import pyplot as PLT
import numpy as NP
x, y = NP.arange(10), NP.cos(x/2)
fig = PLT.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y)
PLT.show()
Ответ 2
%pylab
является ярлыком для ввода всех нижеприведенных команд, которые по сути добавляют numpy и matplotlib в ваш сеанс. Это было добавлено в IPython в качестве инструмента перехода, и текущая рекомендация заключается в том, что вы не должны использовать его. Основная причина заключается в том, что ниже множества команд слишком сильно импортируются в глобальное пространство имен, а также не позволяют изменять режим для matplotlib из пользовательского интерфейса в QT или что-то еще. Вы можете получить историю и рассуждения по этому поводу на http://nbviewer.ipython.org/github/Carreau/posts/blob/master/10-No-PyLab-Thanks.ipynb?create=1.
Это то, что %pylab
делает:
import numpy
import matplotlib
from matplotlib import pylab, mlab, pyplot
np = numpy
plt = pyplot
from IPython.core.pylabtools import figsize, getfigs
from pylab import *
from numpy import *
Это то, что я использую в начале своего ноутбука:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
Ответ 3
%pylab
- это "волшебная функция", которую вы можете вызывать внутри IPython, или Интерактивный Python. Вызывая его, интерпретатор IPython будет импортировать модули matplotlib
и NumPy
, чтобы у вас был удобный доступ к их функциям. В качестве примера,
[email protected]:~/working/fb_recruit/working$ ipython
Python 2.7.6 |Anaconda 1.8.0 (64-bit)| (default, Nov 11 2013, 10:47:18)
Type "copyright", "credits" or "license" for more information.
IPython 1.1.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython features.
%quickref -> Quick reference.
help -> Python own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: arange(4)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-1-2e43d7eb1b3e> in <module>()
----> 1 arange(4)
NameError: name 'arange' is not defined
In [2]: %pylab
Using matplotlib backend: Qt4Agg
Populating the interactive namespace from numpy and matplotlib
In [3]: arange(4)
Out[3]: array([0, 1, 2, 3])
In [4]:
Ответ 4
Более поздняя документация о магиях IPython здесь.
Функция Magics часто присутствует в форме shell-подобной синтаксиса, но находятся под функцией python капота. Синтаксис и назначение возможность аналогична синтаксису bang (!), но с большей гибкости и мощности. Волшебная функция начинается с знака процента (%) или двойным процентом (%%).
Немного здесь и более конкретно о магии %pylab
.
%pylab [--no-import-all] [gui]
Загрузите numpy и matplotlib для интерактивной работы.
Эта функция позволяет вам активировать pylab (matplotlib, numpy и интерактивная поддержка) в любой момент во время сеанса IPython.
%pylab
выполняет следующие импортные операции:
import numpy
import matplotlib
from matplotlib import pylab, mlab, pyplot
np = numpy
plt = pyplot
from IPython.display import display
from IPython.core.pylabtools import figsize, getfigs
from pylab import *
from numpy import *
Ответ 5
Как следует из его названия, Pylab - это MATLAB-подобный интерфейс для выполнения математики в Python. iPython имеет определенную поддержку Pylab, которая вызывается с помощью магии %pylab
.