numpy、scipy、matplotlib、pylabの混乱


132

Numpy、scipy、matplotlib、およびpylabは、科学計算にPythonを使用する一般的な用語です。

私はpylabについて少し学ぶだけで混乱しました。numpyをインポートしたいときはいつでも、いつでもできます:

import numpy as np

考えてみます。

from pylab import *

numpyも(npエイリアスと共に)インポートされます。したがって、基本的には、2番目の方が最初の方よりも多くのことを行います。

聞きたいことがいくつかあります。

  1. pylabがnumpy、scipy、matplotlibのラッパーにすぎないのは正しいことですか?
  2. npはpylabのnumpyエイリアスなので、pylabのscipyとmatplotlibエイリアスは何ですか?(私が知る限り、pltはmatplotlib.pyplotのエイリアスですが、matplotlib自体のエイリアスはわかりません)

4
一般的なスタイルのメモでは、対話型シェルの外でのpylab(および*インポート)の使用を避けます。とにかくPylabはmatplotlibのちょっと変わった付録です。
Seberg、2012年

@unutbu:リンクをありがとう。また、scipyは完全に異なるモジュールであるため、pylabとは無関係であることも意味すると思います
goFrendiAsgard

4
@goFrendiAsgard:pylabが何をインポートしているかを正確に調べることができます/usr/lib/pymodules/python2.7/matplotlib/pylab.py(正確なパスはWindowsまたはOSXでは少し異なります。それを見つけるのに助けが必要かどうか尋ねてください。)
unutbu

ありがとう、それが私が探しているものです。pylabはmatlabを使用しているユーザーのための単なるラッパーなので、私はより「pythonic」な方法を使用すると思います。
goFrendiAsgard 2012年

回答:


129
  1. いいえ(のpylab一部)であり、MatLabのような環境を提供しようとします。にはいくつかの依存関係があり、その中に共通エイリアスの下でインポートされます。の依存関係ではありません。matplotlibmatplotlib.pylabmatplotlibnumpynpscipymatplotlib

  2. ipython --pylab自動インポートを実行すると、すべてのシンボルmatplotlib.pylabがグローバルスコープに配置されます。あなたが書いたようにエイリアスのnumpy下にインポートされますnp。からのシンボルmatplotlibは、mplエイリアスの下で使用できます。


9
@Benjamin Bannierこれは何ですか-wiki.scipy.org/PyLab?これは私を混乱させます。
shahensha 2015年

@shahensha、2つの PyLab があるようです。送信したリンクごとに、「... このページに表示されている新しいPyLabのビジョンと、matplotlibの一部である既存のpylabパッケージの違い」
The Red Pea

15

スパイシーでナンピーは科学的なプロジェクトで、Pythonに効率的で高速な数値計算をもたらすことを目的としています。

MatplotlibはPythonプロットライブラリの名前です。

PyplotはmatplotlibのインタラクティブなAPIで、主にjupyterなどのノートブックで使用されます。通常は次のように使用します。import matplotlib.pyplot as plt

Pylabpyplotと同じですが、追加機能があります(現在、その使用は推奨されていません)。

  • pylab = pyplot + numpy

詳細についてはここを参照してください:Matplotlib、Pylab、Pyplotなど:これらとそれぞれを使用するタイミングの違いは何ですか?


2
matplotlibのサイト「Matplotlib、pyplot、pylabに直接投稿された別の例:それらはどのように関連していますか?Matplotlibパッケージ全体です; matplotlib.pyplotmatplotlibのモジュールです;そしてmatplotlib と共にpylabインストールされるモジュールです
The Red Pea

3

一部の人々(私のような)は、使用例pylabがインターネット上にあるため、pylabの使用についてまだ混乱している可能性があるため、ここに公式のmatplotlib FAQからの引用があります。

pylabは、matplotlib.pyplot(プロット用)とnumpy(数学および配列操作用)を単一の名前空間に一括インポートする便利なモジュールです。多くの例ではpylabを使用していますが、推奨されなくなりました。

つまり、TL; DR; pylab、ピリオドは使用しないでください。必要に応じて、個別に使用pyplotおよびインポートnumpyしてください。

これは、さらに読むためのリンクとその他の有用な例です。


1
最近オープンしたpylabは、私が目にしたものをすぐに恐怖に陥れました。これは通常、どのように受け入れられましたか?
エリック

はい、誰が知っています。
jamescampbell
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.