Подтвердить что ты не робот

Что такое% pylab?

Я вижу, что люди используют %pylab в различных фрагментах кода, особенно в iPython. Тем не менее, я не вижу, где %pylab упоминается где угодно в Learning Python (и нескольких других моих книгах Python), и я не уверен, что это значит.

Я уверен, что ответ прост, но может ли кто-нибудь просветить меня?

4b9b3361

Ответ 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.