Плутанина між numpy, scipy, matplotlib та pylab


132

Numpy, scipy, matplotlib та pylab - загальні терміни серед тих, хто використовує python для наукових обчислень.

Я просто дізнаюся трохи про пілаб, і я заплутався. Щоразу, коли я хочу імпортувати нуме, я завжди можу:

import numpy as np

Я просто вважаю, що колись це роблю

from pylab import *

numpy буде імпортовано також (з npпсевдонімом). Отже, в основному другий робить більше речей порівняно з першим.

Я хочу запитати кілька речей:

  1. Чи правильно, що пілаб - це просто обгортка для нумію, шипі та матплотліба?
  2. Оскільки пп - псевдонім numpy в pylab, що таке псевдонім scipy та matplotlib у pylab? (наскільки я знаю, plt є псевдонімом matplotlib.pyplot, але я не знаю псевдонім для самого matplotlib)

4
Як правило, я б уникав використання пілабу (і * імпорту) поза інтерактивною оболонкою. Pylab - це дещо дивний додаток до matplotlib.
seberg

@unutbu: дякую за посилання, яке дає зрозуміти. Я думаю, це також означає, що scipy - це абсолютно різні модулі, і, таким чином, не пов'язані з pylab
goFrendiAsgard

4
@goFrendiAsgard: Ви можете точно перевірити, що імпортує пілаб, заглянувши /usr/lib/pymodules/python2.7/matplotlib/pylab.py(точний шлях дещо інший для Windows або OSX; запитайте, чи потрібна вам допомога в пошуку.)
unutbu

Дякую, саме це я шукаю. Я думаю, що я буду використовувати більш "пітонічний" спосіб, оскільки пілаб - це просто обгортка для тих, хто звик до матлабу.
goFrendiAsgard

Відповіді:


129
  1. Ні, pylabє частиною matplotlib(in matplotlib.pylab) і намагається надати вам середовище, схоже на MatLab. matplotlibмає ряд залежностей, серед numpyяких імпортується за загальним псевдонімом np. scipyне є залежністю від matplotlib.

  2. Якщо ви запустили ipython --pylabавтоматичний імпорт, усі символи будуть внесені matplotlib.pylabв глобальну область. Як ви писалиnumpy імпортується під npпсевдонімом. Символи від matplotlibдоступні під mplпсевдонімом.


9
@ Бенджамін Баньє Що це тоді - wiki.scipy.org/PyLab ? Це мене бентежить.
shahensha

@shahensha, це здається, що є два PyLabs; за надісланим вами посиланням: "... різниця між баченням нового PyLab, вираженим на цій сторінці, та наявним пакетом pylab, який є частиною matplotlib "
Red Pea

15

Scipy та numpy - це наукові проекти, метою яких є наближення ефективних та швидких числових обчислень до python.

Matplotlib - назва бібліотеки побудови графіків пітона.

Pyplot - це інтерактивна програма для matplotlib, здебільшого для використання в ноутбуках, таких як юпітер. Ви взагалі використовувати його як це: import matplotlib.pyplot as plt.

Pylab - це те саме, що і pyplot, але з додатковими можливостями (його використання наразі не рекомендується).

  • pylab = pyplot + numpy

Додаткову інформацію див. Тут: Matplotlib, Pylab, Pyplot тощо: Яка різниця між ними та коли їх використовувати?


2
Інший приклад, розміщений безпосередньо на сайті matplotlib "Matplotlib, pyplot і pylab: як вони пов'язані? MatplotlibЦе весь пакет ; matplotlib.pyplotце модуль в matplotlib ; і pylabце модуль, який встановлюється поряд з matplotlib. "
Red Pea

3

Оскільки деякі люди (як я) все ще можуть заплутатися у використанні пілабу, оскільки приклади використання pylabє в Інтернеті, ось цитата з офіційного запитання про matplotlib:

pylab - це зручний модуль, який масово імпортує matplotlib.pyplot (для побудови графіків) та numpy (для математики та роботи з масивами) в єдиному просторі імен. Хоча в багатьох прикладах використовується пілаб, він більше не рекомендується.

Отже, TL; DR; це не використовувати пілаб, період. Використовуйте pyplotта імпортуйте numpyокремо за потребою.

Ось посилання для подальшого читання та інші корисні приклади.


1
Нещодавно відкритий пілаб, швидко відскочив від жаху від побаченого. Як це коли-небудь сприймали як нормальне?
eric

Так, хто знає.
jamescampbell
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.