1. ホーム
  2. パイソン

pythonライブラリ概要

2022-02-24 02:13:30
<スパン

http://www.scipy.org/topical-software.html#head-cf472934357fda4558aafdf558a977c4d59baecb





このページでは、SciPyに関連するアドオンソフトウェアやその他のリソースを、科学の分野や計算のトピックごとに分類して索引付けしています。もし、掲載されていないリソースをご存知でしたら、下記の「このページについて」をご覧ください。

また、このページで紹介されている  Scikits一覧 特に科学的な計算タスクに特化したPythonパッケージです。

また、コード共有/ソフトウェア一覧のサイトもご覧ください。  http://scipy-central.org/ . その他の便利なソフトウェアパッケージは  Pythonパッケージインデックス  特にその  科学/研究カテゴリー .

このページについて

このリストは、入門的なリソースが最初、より一般的なトピックが次、そして専門分野に特化したリソースが最後というように、トピックごとに大まかに構成されています。

特に断りのない限り、ここに掲載されているパッケージはすべて、何らかのオープンソースライセンスの下で提供されています。

ここに掲載されていないリソースを配布している、または知っている場合は、掲載を追加してください。そのためには、次のサイトでアカウントを作成してください。  ギズブ にアクセスし  このページのソース . そこで、"Edit"ボタンをクリックし、変更を加えてください。または、次のアドレスにメールを送ってください。  scipy-dev メーリングリスト  という件名で、"トピックソフトウェアページの追加"を送信してください。

できるだけ簡潔に、リソースのホームページへのリンクと、潜在的なユーザーがリソースを見つけるために検索しそうないくつかのキーワードをテキストに含めてください。

さらに、あなたのソフトウェアを  http://scipy-central.org/

ページの再構成(セクションを独立したページに分割する、セクションの見出しを変更するなど)を希望される場合は  [email protected]  メーリングリストに参加し、コミュニティからのフィードバックを得てください。

Pythonの一般的なリソース

チュートリアル・テキスト

Python/プログラミングの一般的なチュートリアルをいくつか紹介します。

また、科学技術計算用に特化したものもあります。

動作環境

  • IPython Mathematica、IDL、Matlabや同様のパッケージのインタラクティブシェルから多くのアイデアを拝借しています。matplotlib と gnuplot プロットパッケージの特別なサポートを含んでいます。IPython は (X)Emacs もサポートしており、IPython を対話的な Python シェルとして完全な IDE として使用できます。
  • スパイダー  (正式名称  パイディ ): 科学アプリケーションの開発に適した Qt ベースの IDE。統合および外部Pythonコンソール、エディタに組み込まれたコードチェック、グラフィカルなクラスブラウザ、matplotlibグラフのフルサポートが含まれています。
  • Enthought Canopy Canopy : EnthoughtのPythonディストリビューションと、コードチェック用のテキストエディタとCanopyを備えた解析デスクトップを含む解析環境です。 Canopyには、グラフィカルなパッケージマネージャ、オンラインドキュメントブラウザもあり、Linux、Windows、Macがサポートされています。
  • IEP Python IDE は、インタラクティブ性とイントロスペクションに重点を置いたクロスプラットフォームの Python IDE で、科学技術計算に非常に適しています。IEPはエディタとシェルという2つの主要コンポーネントで構成され、プラグイン可能なツール群を使用して、エディタとシェルを支援します。 ツールの例としては、ソース構造、プロジェクトマネージャ、対話型ヘルプ、ワークスペース...があります。
  • Pymacs Emacsから起動すると、Emacs LispとPythonの双方向通信を可能にするツールです。
  • Visual Studio用Pythonツール CPython、IronPython、IPython REPL、デバッグ、プロファイリング、HPCクラスタ上でのMPIプログラムのデバッグをサポートするVisual Studio用の豊富なIDEプラグインを提供します。
  • プロットリー Plotlyはコマンドラインを持ち、Pythonスクリプトの保存と共有が可能で、特別にサポートされているのは  インタラクティブなPlotlyグラフ .
  • ワケアリ ワークフロー、IPythonノートブック、プロット、アプリケーションをクラウド上で作成・共有することができ、科学とビッグデータのためのPythonディストリビューションであるAnacondaの上にすべてを載せています。ワークフロー、IPythonノートブック、プロット、アプリケーションをクラウド上で作成・共有することができ、科学とビッグデータのための完全なPythonディストリビューションであるAnacondaの上にすべてを置くことができます。 コンティニュアム社ウェブサイト .
  • その他のIDEリンク Pythonの公式サイトでは、Pythonの統合開発環境(Integrated Development Environments)の包括的なリストを管理しています。

科学:基本ツール

これらは、ほとんどすべての分野の科学的作業に一般的に有用な基本的なツールをカバーするリンクです。後にリストアップされるより具体的なパッケージの多くは、これらのうちの一つまたは複数に依存しています。

  • SciPy: 様々なハイレベルな科学技術モジュールを一つのパッケージにまとめたアンブレラプロジェクト。SciPyには、線形代数(BLASとLAPACKのラッパーを含む)、最適化、積分、特殊関数、FFT、信号と画像処理、ODEソルバーなどのモジュールが含まれています。
  • NumPy  は、SciPyがベースとし、前提条件として必要とするパッケージです。これは、Numeric と Numarray の両方の特徴を取り入れたハイブリッドである。Python を使った数値計算が初めての場合は、NumPy を使うべきでしょう。
  • 数値演算Python  と  沼袋 Numerical Pythonは現在非推奨となっています。Numarray の開発に資金を提供した STSCI の Perry Greenfield によると、Numarray は非推奨となった。NumarrayをベースにしたすべてのコードがNumPyを使うように移植される間、2007年末頃までサポートされます(主にTodd Millerによってサポートされます)。
  • サイエンティフィックパイソン  科学技術計算のための Python モジュールのもう一つのコレクションです。基本的な幾何学 (ベクトル、テンソル、変換、ベクトルとテンソル場)、四元数、自動微分、(線形) 補間、多項式、初等統計、非線形最小二乗フィット、単位計算、Fortran 互換テキストフォーマット、VRML による 3D 視覚化、単純なラインプロットと 3D ワイヤフレームモデル用の二つの Tk ウィジェットが含まれています。また、netCDF library (portable structured binary files)、MPI (Message Passing Interface, message-based parallel programming)、BSPlib (Bulk Synchronous Parallel programming)へのインターフェースも備えています。これらの機能の多くはSciPyに取り入れられていますが、全てではありません。
  • Numexpr numpyの配列式を文字列として受け取り、実行時間とメモリ使用を最適化するために書き換え、numpyが通常できるよりもはるかに高速に実行するパッケージです。
  • PyGSL の python インターフェースです。  GNU科学ライブラリ(gsl) .
  • GMPY GNU Multiple Precision library (gmp) 用の Python インターフェースです。
  • Enthought Python ディストリビューション 科学技術計算のための様々なツール(このページに掲載されているものを含む)を1つのパッケージにまとめた、とても便利なダウンロードです。) これにより、ユーザーはこれらのパッケージをすべて手動でビルドする手間を省くことができ、中には動作させるのがかなり難しいものもあります。EPDは、学術・非営利目的の利用は無料ですが、商業・政府目的の利用は有料です。
  • Python(x,y) : 科学的な開発に必要な Python の完全な配布に必要なすべてのパッケージを含む、Windows または Ubuntu ユーザーのための完全なディストリビューションです。
  • PyROOT へのランタイムベースの Python バインディングです。  ルーツ  フレームワークです。ROOTは、科学的なアプリケーションを開発するための完全なシステムで、数学やグラフィックのライブラリから、効率的なストレージや読み出しに至るまで Pythonバインディングは、ランタイム型情報に基づいており、ワンライナーで独自のC++クラスをその場でシステムに追加することができる。Pythonのバインディングはランタイム型情報に基づいているので、独自のC++クラスをワンライナーでシステムに追加でき、ポインタ操作だけでなくダウンキャスティングも不要になります。RTTIを使うことでメモリとコールのオーバーヘッドを最小限に抑え、どのバインディングジェネレータよりも軽量で高速なバインディングを実現しています。
  • PAIDA を含む純粋なPython科学分析ツールです。  AIDA  インターフェイスを提供します。
  • ビーバイピー の修正版の Python ラッパーです。  COLNEW  境界値問題ソルバー。(COLNEWは非商用のみのタイプライセンスです。)
  • ネットワークX 複雑なネットワークの構造、ダイナミクス、機能を作成、操作、研究するためのPythonパッケージです。
  • PyAMG 大規模な線形代数問題のための代数的マルチグリッド(AMG)ソルバーのライブラリです。
  • PyTrilinos  大規模で複雑なマルチフィジックス工学および科学的問題を解決するためのフレームワークであるTrilinosのPythonインターフェースです。
  • PyIMSLStudio  PyIMSL Studio は、IMSL Numerical Library のラッパー、Python ディストリビューション、およびプロトタイプの解析開発に有用なオープンソースの Python モジュールのセレクションを含みます。
  • ボトルネック  は、Cythonで書かれた高速なNumPy配列関数のコレクションです。
  • KryPy  は、大規模で疎な行列を持つ線形代数系を効率的に解くためのクリロフ部分空間法パッケージです。

他言語で書かれたコードを実行する

C、C++、FORTRANコードのラッピング

  • SWIG SWIGは、CやC++で書かれたプログラムを様々な高級プログラミング言語と接続するためのソフトウェア開発ツールです。SWIGは主にPerl、Python、Tcl/Tk、Rubyなどの一般的なスクリプト言語で使用されている。 SWIGタイプマップ  のページでは、Numeric Arrayを使用するためにSWIGを修正しました。
  • ブースト.パイソン C++とPythonのシームレスな相互運用を可能にするC++ライブラリです。  PythonInfo Wiki  c++-sig"のHowtoリファレンスがあります。  http://www.python.org/community/sigs/current/cplusplus-sig/  python.org の Boost メーリングリストを購読することができます。個人的なメモもあります。  http://wiki.scipy.org/Boost.Notes
  • F2PY F2PYは、署名ファイル(手書きまたはF2PY生成)からPython C/APIモジュールを作成するためのPython拡張ツールです(またはFortranソースから直接作成する)。
  • http://wiki.scipy.org/Weave C/C++ベースのPython拡張モジュールの自動作成機能、および直接モジュールを作成する機能を備えています。後者は、Pythonのスクリプトの柔軟性とコンパイル済みC/C++の実行速度を組み合わせ、すべてのモジュール作成の詳細を自動的に処理するものです。
  • パイレックス : Pyrex は Python と C のデータ型を好きなように混ぜたコードを書き、Python の C 拡張としてコンパイルすることができます。こちらもご覧ください  サイソン .
  • PyCxx : CXX/Objectsは、Pythonの拡張機能を書きやすくするためのC++の機能のセットです。これは、あなたのプログラムが参照カウントのエラーを起こさない確率を大幅に高め、Python C APIからのエラーリターンを継続的にチェックする必要がないことを意味します。
  • ctypes : Python で C データ型を作成・操作し、ダイナミックリンクライブラリ/共有 DLL の関数を呼び出すためのパッケージです。
  • レールガン : C や Python でのシミュレーション・プログラミングをより速く、より簡単にする ctypes ユーティリティ
  • インスタント  Instantは、PythonでCやC++のコードを瞬時にインライン化するためのPythonモジュールです。SWIGの上に構築された小さなPythonモジュールです。

Matlab、R、IDLコードのラッピング

  • PyMat : PyMat は MATLAB エンジンインタフェースを公開し、Python プログラムが MATLAB エンジンセッションを開始、終了、通信することを可能にします。これらの行列はNumPyの配列として指定することができ、MATLABの行列とNumPyの数学的機能を融合させることができます。
  • mlabwrap MATLABエンジンへの接続を開いてステートメントを実行する代わりに、MATLAB関数はPython関数として、複雑な構造体はプロキシオブジェクトとして公開されます。
  • パイソンコール MATLAB内でPythonインタプリタを実行し、PythonとMATLABのワークスペース間でデータ(行列など)を転送することができます。
  • RPy への非常にシンプルで堅牢な Python インターフェースです。  R プログラミング言語 . あらゆる種類のRオブジェクトを管理でき、任意のR関数(グラフィック関数を含む)を実行することができます。Rシステム用にインストールされた任意のモジュールをPython内から使用することができます。
  • pyidlrpc IDLルーチンやオブジェクトのトラスペアレントラッピング、およびIDLルーチンの任意実行が可能です。 別途実行中のidlrpcサーバ(IDLとともに配布)への接続を利用します。

他の配列言語からコードを変換する

  • IDL : ITTが提供するインタラクティブ・データ言語

プロット、データビジュアライゼーション、3D プログラミング

主に)2Dに焦点を当てたツール

  • matplotlib matplotlib : Python の 2 次元プロットライブラリ。様々なハードコピー形式 (PNG, JPG, PS, SVG) やインタラクティブな GUI 環境 (WX, GTK, Tkinter, FLTK, Qt) で出版品質の図を作成できます。matplotlibは、pythonスクリプト、pythonシェルからの対話式(matlabやmathematicaのような)、動的チャートを生成するWebアプリケーションサーバ、GUIアプリケーションへの組み込みで使用することが可能です。インタラクティブに使うには  IPython  は、matplotlibと統合する特別なモードを提供します。詳細は matplotlibクックブック  のレシピをご覧ください。
  • チャコ Chaco のアプリケーションは、単純なラインプロットスクリプトから、相互に関連するデータのさまざまな側面をインタラクティブに探索する GUI アプリケーションまで、多岐にわたります。Enthoughtが開発するオープンソースプロジェクトであるChacoは、Kiva、Enable、Traitsといった他のEnthoughtテクノロジーを活用して、出版品質の高度な対話型プロットを作成することができます。
  • PyQwt に対する Python バインディングのセットです。  Qwt  を拡張したC++クラスライブラリです。  Qt  フレームワークに、科学・工学アプリケーション用のウィジェットを追加したものです。2次元データをプロットするウィジェットや、有界・無界の浮動小数点値を表示・制御する様々なウィジェットが用意されています。
  • ヒポドロー 高度にインタラクティブなデータ解析環境です。C++で書かれており  Qt  のライブラリです。  トロールテック . Pythonバインディングを含み、高エネルギー物理学環境に典型的なデータ解析のための多くの機能を持ち、そのネイティブサポートとして  ルート  リアルタイムのデータ収集と表示に最適化されています。
  • ビッグル 複数の出力形式(postscript, x11, png, svg, gif)をサポートし、シンプルなTeXを理解し、高レベルでエレガントなインターフェイスを備えています。
  • Gnuplot.py へのインターフェースとなる Python パッケージです。  gnuplot オープンソースのプロットプログラムとして有名です。Python から gnuplot を使って、メモリ、データファイル、あるいは数学的なデータの 配列を描画することができるようになります。  このパッケージは、数値計算プログラムの「のり」として、計算中のデータをその場でプロットするために使用できます。IPython  は、Gnuplot.py をより効率的に対話的に使うための追加機能拡張を含んでいます (ただし、基本パッケージが必要です)。
  • グレースプロット への Python インターフェイスです。  グレース  2Dプロットプログラム。
  • disipyl: オブジェクト指向のラッパーで  DISLIN  disipylは、DISLINプロットの様々な側面を表現するクラスのセットを提供するだけでなく、よく使われるプロットフォーマット(散布図、ヒストグラム、3次元表面図など)を作成するための使いやすいクラスも提供します。このライブラリを設計する際の主な目標は、インタラクティブなデータ探索とプロット作成を容易にすることでした。
  • OpenCv 画像処理、構造解析、モーション解析と物体追跡、パターン認識のための成熟したライブラリで、最近 Swig ベースの Python バインディングが追加されました。WindowsとLinux-RPMのパッケージが利用可能。元々インテルがスポンサーとなっているオープンソースプロジェクトで、インテル・パフォーマンス・プリミティブ・パッケージ(IPP)と結合してパフォーマンスを向上させることができる。インテルがスポンサーとなっているオープンソースプロジェクトで、インテル・パフォーマンス・プリミティブ・パッケージ(IPP)と結合することにより、パフォーマンスを向上させることができます。  こちら
  • PyChart Encapsulated Postscript, PDF, PNG, SVG チャートを作成するためのライブラリです。現在、折れ線グラフ、棒グラフ、レンジフィルプロット、円グラフをサポートしています。
  • ピグゲーム Python を使ってゲームを書くためのものですが、その汎用のマルチメディアライブラリは、間違いなく視覚化において他のアプリケーションに応用できます。
  • PyNGL PyNGLは、等高線、ベクトル、流線、XYプロットを作成し、これらのいずれかを複数の地図投影上にオーバーレイすることができます。PyNGLのグラフィックはNCAR Command LanguageやNCAR Graphicsと同じ高品質のグラフィックをベースにしています。
  • ヴェウシュ  : Python で書かれた科学的なプロットパッケージです。  PyQt  と  沼袋 . Veuszは、出版に適したPostscript出力を生成するように設計されています。
  • pyqtgraph : PyQt と numpy/scipy をベースにした Pure-python のプロット、グラフィックス、GUI ライブラリです。科学/工学アプリケーションでの使用を意図しており、リアルタイムのデータ/ビデオ表示にも十分な速度があります。

データビジュアライゼーション(主に3D、サーフェス、ボリューメトリックレンダリング)

  • MayaVi は、フリーで使いやすい科学データビジュアライザーです。これは  パイソン  を使用しています。  可視化ツールキット(VTK)  で書かれたGUIを提供します。  Tkinter . MayaVi は、メッシュ、サーフェス、ボリューメトリック レンダリングなど、さまざまな方法でスカラー、ベクトル、テンソル データの視覚化をサポートします。MayaVi は、スタンドアロン GUI プログラムとしても、他の Python プログラムから駆動される Python ライブラリとしても使用できます。
  • マヤビ2  MayaVi1よりも圧倒的に優れており、Pythonic APIを持ち、numpy配列を透過的にサポートし、強力なアプリケーション、再利用可能なライブラリ、そして3Dプロットを迅速に行うためのmlabというpylabと同等の強力なものを提供します。
  • ヴィスヴィス Visvisは、OpenGlの上にPythonのオブジェクト指向レイヤーを乗せることで、OpenGlのパワーとPythonの使い勝手を融合させたものです。関数群の形でMatlabライクなインターフェースを持ち、簡単にオブジェクトを作成することができます(例:plot(), imshow(), volshow(), surf()).
  • Py-OpenDX(パイオープンDX  : Py-OpenDX は、Python による  OpenDX  のAPIです。現在はDXLinkライブラリのみをラッピングしていますが、将来的にはCallModuleやDXLiteなど他のDXライブラリにも拡張される予定です。
  • Py2DX : Py2DX は、Python による  OpenDX  Py-OpenDXをベースとしたAPIです。MavisはこのインターフェースとOpenDXライブラリを用いて作られたビジュアライゼーションソフトウェアです(Rjoy)。
  • IVuPy IVuPyのインターフェースは、600以上のクラスがあり、そのうちの2つは  コイン3D  C++のライブラリをPythonに統合し、PyQtと非常によく統合され、プログラミングが楽しいです。  シーングラフ  ライブラリで、高速化のために最適化されています。と比較して  VTK Coin3Dはより低レベルで、VTKの高度な視覚化および画像化アルゴリズムの多くが欠如しています。
  • ピヴィ  PivyはPythonでCoin3Dアプリケーションや拡張機能を開発し、実行時にPythonインタープリタ内からCoin3Dプログラムをインタラクティブに修正し、実行時にPythonインタープリタ内からPythonプログラムを実行できるScripting Nodeをシーングラフに組み込み、Pythonコードとコールバックを実行できるScripting Nodeをシーングラフに組み込みできるようにします。
  • マット3D  OpenGLを利用し、PythonとTkで書かれています。生成されたグラフと対話(回転、ズーム)することができ、その様子を画像として保存することができる。
  • S2PLOT  は、OpenGLをベースとした3次元プロットライブラリで、標準および拡張ディスプレイデバイスをサポートしています。S2PLOTライブラリはC言語で書かれており、GNU/Linux, Apple/OSX, GNU/Cygwin システム上の C, C++, FORTRAN, Python プログラムで使用することができます。このライブラリは現在クローズドソースですが、商業的および学術的な利用には無料です。2008年末のオープンソース公開を目指している。
  • pyqtgraph : PyQt, python-opengl, numpy/scipyをベースにしたPure-pythonプロット、3Dグラフィックス(体積レンダリング、等値面レンダリングを含む)、GUIライブラリです。

LaTeX、PostScript、ダイアグラム生成

  • PyX PostScriptの抽象化とTeX/LaTeXのインターフェイスの両方を提供します。出版に耐えうる品質の2次元および3次元プロットのような複雑なタスクは、これらのプリミティブから構築されます。
  • パイピックス のラッパーです。  イーピーアイエックス  LaTeX 用のプロッティング・ライブラリです。
  • ドット2テックス : Dot/Graphviz/LaTeXファミリーのもう一つのツールで、GraphvizからLaTeXへの変換ツールです。Graphvizのxdot出力を一連のPSTricksやPGF/TikZのコマンドに変換することで実現します。
  • パイレポート : スクリプトを実行し、出力 (pylab グラフィック含む) をキャプチャします。LaTeXまたはpdfのレポートを生成します。

その他の3Dプログラミングツール

  • VPython : リアルタイムの3D出力を提供し、初心者プログラマーでも簡単に使えるPythonモジュールです。
  • OpenRMシーングラフ。  シーングラフAPIを実装した開発者向けツールキットで、ハードウェアアクセラレーションによるレンダリングにOpenGLを使用します。OpenRMは、Unix/Linux/Windowsプラットフォーム上で、高性能で移植性の高いグラフィックスおよび科学的可視化アプリケーションを構築するために使用されることを目的としています。
  • パンダ3D : オープンソースのゲーム・シミュレーションエンジンです。
  • Python Computer Graphics Kit。  3Dコンピュータグラフィックス画像の作成に必要な基本的な型や関数を含むPythonモジュールの集合体です。
  • ピージーオ PyGeo はユークリッド幾何学の最も基本的な概念を入門レベルで探求するために使用することができます。 しかし、ユークリッド幾何学プロジェクトは幾何学への新しく革新的なアプローチであるなど、より高度な幾何学のトピックを探求するために特に適しています。
  • Python 3Dソフトウェアコレクション : 3次元で作業するためのPythonソフトウェアへの小さなポインタ集です。
  • パイソンOCC : の Python バインディング  オープンカスケード 3Dモデリング & 数値シミュレーションライブラリ。( 関連  プロジェクト)