ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
インストール
ブラウザよりも高速アクセス!
 

Cython

索引 Cython

Cython は、C言語によるPythonの拡張モジュールの作成の労力を軽減することを目的として開発されたプログラミング言語である。その言語仕様はほとんど Python のものと同じ (上位互換) だが、Cの関数を直接呼び出したり、C言語の変数の型やクラスを宣言できるなどの拡張が行われている。Cython の処理系ではソースファイルを C のコードに変換し、コンパイルすれば Python の拡張モジュールになるようにして出力する。 このように C と Python をシームレスに取り混ぜて扱う Cython の利点の一つは、既にある Python コードを、いくつかの静的な型 (static type, en) を宣言して律速なループをうまく書き直すだけで、コンパイル後のコードの実行速度がC言語並みに高速化されることである。複雑なC言語インターフェイスを使う必要はない。コーディングのしやすさと可読性は Python と変わらない、つまり Pythonic (en) なままである。数値計算/配列操作では、多くの場合実行速度がおおよそ100倍になる。Python の JIT コンパイラである Psyco の場合はおおよそ 4 倍である。 Cython は Pyrex 言語から派生したもので、Pyrex に比べると様々な機能や高度な最適化が加えられている。 フリーの数値計算・数式処理システムであるSAGE の一部は Cython で書かれている。 Cython の処理系は Python で書かれており、Windows、Linux、macOS で実行できる。.

13 関係: トランスコンパイラカットヒル・マキー法IntelliJ IDEAKivyNumPyOrange (ソフトウェア)PandasPyrexPythonRen'PySageMathScikit-learnSciPy

トランスコンパイラ

トランスコンパイラ(他にトランスパイラ、ソース・トゥ・ソースコンパイラ、などとも)は、あるプログラミング言語で書かれたプログラムのソースコードを入力として受け取り、別のプログラミング言語の同等のコードを目的コードとして生成する、ある種のコンパイラである。従来一般に、コンパイラが「比較すると高水準な言語のソースコード」から「比較すると低水準な言語の目的コード」に変換する(「コンパイルする」)ものであったのに対し、トランスコンパイラは同じ程度の(抽象化の)水準のコードに変換する。たとえば、PascalのコードをCのコードへと変換する。自動並列化コンパイラは、しばしば高水準言語の入力からOpenMPのような並列化メタデータやFortranのforall文のような言語構造を変換する。 トランスコンパイルの別の目的は、基本的なプログラミング言語の次期バージョンを使う場合や、APIの後方互換性が壊れた場合などに、レガシーなコードから変換することである。プログラムの実行環境が変わる場合(例えば、Python 2からPython 3に変換する場合や古いAPIから新しいAPIに変換する場合)や、コンパイルによりプログラムのサイズが極端に大きくなったり実行速度が遅くなった場合は、(コンパイラとして見れば、要するに最適化ということだが)リファクタリングを行う。 トランスコンパイラは、元のソースコードの開発やデバッグを簡単に行うことができるよう、元のコードをコメントなどに残す(ことができる)ものもある。また、元のコードから変換した際に構文が大幅に変わった場合は、同等のコードには見えないようなコードに変換されることもある。。元のコードから変換されたソースコードにマッピングを行うデバッグツールもある。。--> トランスコンパイラを主たる実装として開発されている言語の例としては, Coccinelle, CoffeeScript, Dart, Haxe, TypeScript, Emscriptenがある。.

新しい!!: Cythonとトランスコンパイラ · 続きを見る »

カットヒル・マキー法

Cuthill-McKee のアルゴリズムにより配列された行列 同じ行列の RCM による配列 行列を扱う数学分野において、カットヒル・マキー法 (カットヒル・マッキー並べ替えとも、Cuthill–McKee algorithm, CM) は Elizabeth Cuthill と J. McKee に因んで名付けられた、対称なパターンを持つ疎行列をの小さいの形に並び替えるアルゴリズムである。同じアルゴリズムだが、指数が逆順となる、逆カットヒル・マキー法 (Reverse Cuthill–McKee algorithm,RCM) と呼ばれる Alan George によるアルゴリズムもある。実用上、ガウシアン除去と共に適用した場合は CM 並べ替えよりもフィルインが少くなることが知られている。 カットヒル・マキー法 はグラフ理論上で標準的に用いられる、幅優先探索アルゴリズムの一変種である。 を、外縁ノードから始め、全てのノードを被覆するまで生成する。集合 は集合 内の全ノードの隣接頂点から生成される。 これらのノードは次数が昇順になるよう並べられる。この点のみが幅優先探索アルゴリズムとの違いである。.

新しい!!: Cythonとカットヒル・マキー法 · 続きを見る »

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、チェコに本社を置くJetBrains社が開発した、Javaなど数多くのプログラミング言語に対応した統合開発環境である。 リファクタリング機能をJava用の統合開発環境としては初めて搭載したことでも知られる。変数に型のないプログラミング言語に対してもリファクタリングを提供している。 ZeroTurnaroundの調査によると、Javaの統合開発環境としてはEclipseに続いて2番目に人気である (2011年はシェア22%、2012年はシェア28%)。.

新しい!!: CythonとIntelliJ IDEA · 続きを見る »

Kivy

KivyはPythonのNUI(Natural User Interface)でのマルチタッチアプリケーション開発のためのオープンソースライブラリである。動作環境はAndroid、iOS、Linux、MacOS X、Windowsである。MITライセンスで配布されているフリーのオープンソースソフトウェアである。 Kivyは様々なプラットフォームで動作するように開発が進められており、Raspberry Piもサポートされた。 特徴としては以下のとおりである。.

新しい!!: CythonとKivy · 続きを見る »

NumPy

NumPyは、プログラミング言語Pythonにおいて数値計算を効率的に行うための拡張モジュールである。効率的な数値計算を行うための型付きの多次元配列(例えばベクトルや行列などを表現できる)のサポートをPythonに加えるとともに、それらを操作するための大規模な高水準の数学関数ライブラリを提供する。.

新しい!!: CythonとNumPy · 続きを見る »

Orange (ソフトウェア)

Orangeはオープンソースのデータ視覚化、機械学習、データマイニング用ツールキットである。ビジュアルプログラミング言語として、事前に定義されたウィジェットまたは利用者自身が設計したウィジェットをリンクしてワークフローを作成するインターフェースを介して実装される。またPythonライブラリとして使用できる。オレンジ色のコンポーネントはウィジェットと呼ばれ、単純なデータの視覚化、サブセットの選択と前処理、学習アルゴリズムや予測モデリングの経験的評価まで幅広く活用できる。.

新しい!!: CythonとOrange (ソフトウェア) · 続きを見る »

Pandas

Pandasは、プログラミング言語Pythonにおいて、データ解析を支援する機能を提供するライブラリである。特に、数表および時系列データを操作するためのデータ構造と演算を提供する。PandasはBSDライセンスのもとで提供されている。.

新しい!!: CythonとPandas · 続きを見る »

Pyrex

Pyrex は、Pythonの拡張モジュールの作成を補助する目的で開発されたプログラミング言語である。Python は拡張モジュールを記述するためのC言語のAPIを提供している。関数とデータ型をC言語で記述することができ、記述したモジュールは Python からアクセスすることができる。既存の C ライブラリ の関数とデータ型を Python オブジェクトとしてラップし、Python から利用可能にすることもできる。 こうしたプロセスの自動化を補助する SWIG のようなツールも存在するが、Python から外部のライブラリを利用可能にすることに限定されており、API の変更が必要な場合、再度グルーコードを手で記述する必要がある。このような場合に Pyrex は適している。Pyrex ではユーザーが C コードに直接アクセス可能な Python に似た言語を用いて、拡張モジュールを記述することを可能にする。 Pyrex と Python の文法が似ているため、Python のモジュールを記述するのは容易であり、C や C++ などの異なる言語を習得する必要がない。また、グルーコードを書く必要もない。C のヘッダファイルと、拡張モジュールでアクセスする必要のある列挙型、データ型、関数を指定するだけでよい。Pyrex コンパイラが必要なグルーコードを自動的に生成し、Pyrex コードを動作する Python モジュールにコンパイルしてくれる。.

新しい!!: CythonとPyrex · 続きを見る »

Python

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。.

新しい!!: CythonとPython · 続きを見る »

Ren'Py

Ren'Py(レンパイ)は、ビジュアルノベルの制作を容易にするフリーソフトウェアエンジンである。NScripterのような他の有名なビジュアルノベルエンジンとは異なり、Ren'Pyは英語圏で多く用いられており、300以上のゲームが英語で製作されている。Ren'Pyの名前は、「恋愛」ゲームと、エンジンの開発言語であるPythonに由来している。2012年3月より、日本語のサイトが開設された。.

新しい!!: CythonとRen'Py · 続きを見る »

SageMath

SageMath(セイジ、以前はSage、SAGEと記した)は数学の幅広い処理を扱うソフトウェアである。扱う処理は計算機代数、組み合わせ、数値計算など多岐に及ぶ。工学的応用に加え基礎科学の研究もカバーする。 SageMathは2005年2月24日にフリーソフトウェアとしてGNU General Public Licenseの元で初版が公開された。その開発目的はMagma、Maple、Mathematica(いずれも計算機代数ソフトウェア)、MATLABの代替となるフリーかつオープンソースなソフトウェアを提供することであった。開発は、米ワシントン大学の数学准教授のウィリアム・スタイン (William Stein) が主導して始まった。 SageMathはPythonプログラミング言語を使用しており、手続き型・関数型・オブジェクト指向によるプログラムの記述を行うことができる。.

新しい!!: CythonとSageMath · 続きを見る »

Scikit-learn

scikit-learn (旧称:scikits.learn) はPythonのオープンソース機械学習ライブラリFabian Pedregosa; Gaël Varoquaux; Alexandre Gramfort; Vincent Michel; Bertrand Thirion; Olivier Grisel; Mathieu Blondel; Peter Prettenhofer; Ron Weiss; Vincent Dubourg; Jake Vanderplas; Alexandre Passos; David Cournapeau (2011).

新しい!!: CythonとScikit-learn · 続きを見る »

SciPy

SciPy は、プログラミング数学、科学、工学のための数値解析ソフトウェアである。無料かつオープンソースで、Windows・Linux・Mac を含むオペレーティングシステムで動作する。ScientificPython とは無関係である。.

新しい!!: CythonとSciPy · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »