問題タブ [cython]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python Distutils
Distutilsの厳格なバージョン番号クラスのため、cythonをインストールできませんでした。たとえば、binutils-2.18.50-20080109-2.tar.gz をMinGWと共に使用してcython をインストールすることはできません。ソース コードのドキュメントには、「このバージョン番号付けシステムの理論的根拠は、distutils のドキュメントで説明されます」と記載されています。私はその根拠を見つけることができません。
私の質問: このバージョン番号付けシステムの理論的根拠は何ですか?
python - Python の拡張 - swig や Cython ではなく、swig に拡張する
Python コードのボトルネックを見つけ、psycho などで遊んでみました。次に、パフォーマンスのために ac/c++ 拡張機能を作成することにしました。
swig の助けを借りて、引数などを気にする必要はほとんどありません。すべて正常に動作します。
ここで私の質問: swig は、実際の .pyd または .so コードを呼び出す前に、多くの「チェック」と「PySwigObject」を行う非常に大きな py ファイルを作成します。
このファイルを手書きしたり、swig に任せたりすると、さらにパフォーマンスが向上するかどうかを経験したことがある人はいますか?
python - Cython 拡張モジュールで定義されたクラス メソッドの動的使用
クラス メソッドの C 実装 ( Cythonから生成されたもの) が存在する場合はそれを使用し、C 拡張機能が存在しない場合は Python の同等物を使用したいと考えています。私は最初にこれを試しました:
ここで、optimized_method はCythonモジュールで定義された関数です。
しかし、これはうまくいきません:
これを機能させるために私が見つけた唯一の方法は次のとおりです。
しかし、各関数呼び出しでモジュールの存在をチェックするのは、最適とは言えないようです...なぜ私の最初のアプローチが機能しないのですか?
[編集] : Cythonモジュールの内容を追加
mingw - Windows での Cython pyximport エラー
私は Cython を使って最初の一歩を踏み出しました。wiki の指示に従って自分のマシンにインストールしました。
Cython のチュートリアルを進めていくと、cython のコンパイルが非常に簡単になるはずの pyximport にたどり着きました。ただし、使用しようとすると、次のエラーメッセージが表示されました(再フォーマット):
私の質問は、pyximport で mingw を使用する方法を知っている人はいますか?
mingw は適切にインストールされているように見え、Cython モジュールを (setup.py を使用して) 作成する長い道のりが機能distutils.cfg
し、wiki にあるようにファイルを作成したことにも注意してください。
python - Cythonでの文字列操作
CPUを集中的に使用する文字列操作を行うコードがあり、パフォーマンスを向上させる方法を探していました。
(編集:私は、最長の共通部分文字列を見つける、cでステートマシンとしてより適切に表現される可能性のある正規表現を多数実行する、HTMLからコメントを削除する、などの作業を行っています。)
私は現在、 Cythonについて多くの良いことを聞いた後、コードの一部をCythonに移植することを検討しています。ただし、Cythonの主な焦点は数値計算であり、文字列の操作はほとんど文書化されていないようです。
Unicodeも大きな問題になる可能性があります。
私の質問は次のとおりです。
- 文字列のことでCythonを気にする必要がありますか?誰かがcythonでのこのタイプの処理の経験があり、共有できますか?
- Cythonのドキュメントに何か足りないものがありますか?Cythonでの文字列の操作に関するチュートリアル/リファレンス/ドキュメントを知っている人はいますか?
c++ - cython wiki の Hello World が機能しない
Cython のこのチュートリアルに従おうとしています: http://docs.cython.org/docs/tutorial.html#the-basics-of-cythonで問題が発生しています。
ファイルは非常にシンプルです。私は helloworld.pyx を持っています:
と setup.py:
そして、標準コマンドでコンパイルします:
次のエラーが発生しました。
Ubuntu 9.04 リポジトリから python と cython をインストールしました。コンパイラが Python.h を見つけられない理由がわかりません。
私はやってみました:
そして、gcc を使用して手動で結果をコンパイルします。
同じ正確なエラーメッセージが表示されました。
手がかりはありますか?
python - Cython と numpy の速度
Python プログラムで相関計算に cython を使用しています。2 つのオーディオ データ セットがあり、それらの時間差を知る必要があります。2 番目のセットは、開始時間に基づいてカットされ、最初のセットを横切ってスライドされます。2 つの for ループがあります。1 つはセットをスライドさせ、内側のループはその時点で相関を計算します。この方法は非常にうまく機能し、十分に正確です。
問題は、純粋な python では、これに 1 分以上かかることです。私の cython コードでは、約 17 秒かかります。これはまだ多すぎる。このコードを高速化するためのヒントはありますか:
python - Python拡張機能はCython/Pyrexスレッドセーフで作成されていますか?
そうでない場合、特定の方法でプログラミングすることでスレッドセーフを保証できる方法はありますか?
明確にするために、「スレッドセーフ」とは、OSレベルのスレッドではなく、Pythonスレッドを意味します。
c++ - Cythonでリスト/ディクテーションを行う慣用的な方法は?
私の問題:STLマップとベクトルを使用して生のC ++で大規模なデータセットを処理すると、Cythonを使用するよりもかなり高速になることがよくあります(メモリフットプリントが少なくなります)。
この速度のペナルティの一部は、Pythonリストとdictを使用することによるものであり、Cythonで邪魔にならないデータ構造を使用するためのトリックがあるかもしれないと思います。たとえば、このページ(http://wiki.cython.org/tutorials/numpy)は、ND配列のサイズとタイプを事前に定義することにより、Cythonでnumpy配列を非常に高速にする方法を示しています。
質問:リスト/ディクテーションで同様のことを行う方法はありますか?たとえば、それらに含まれると予想される要素または(キー、値)ペアの大まかな数を示すことによってですか?つまり、Cythonでリスト/ディクテーションを(高速な)データ構造に変換する慣用的な方法はありますか?
そうでない場合は、C ++で記述し、Cythonインポートでラップする必要があると思います。
python - Noob対応のCythonチュートリアル
私はたくさんのスクリプト言語(python、ruby、lua、php)を知っていますが、C / C ++のようなコンパイル済み言語は知りません。私は、本質的にpythonであるcythonを使用していくつかのpythonコードを高速化してみたかったのです。 >Python用のC拡張機能を作成することを目的としたCコンパイラ。基本的に、C->ネイティブコードにコンパイルされるより厳密なバージョンのPythonでコーディングします。
ここに問題があります、私はCを知りません、それでもcythonのドキュメントは明らかにすでにCを知っている人々を対象としています(何も説明されておらず、提示されているだけです)、そして私には役に立ちません、私は何か良いものがあるかどうかを知る必要がありますPythonプログラマーを対象としたcythonチュートリアル、またはCythonを学ぶ前にCを学ぶ必要がある場合。
私は有能なPythonプログラマーであることを忘れないでください。私は、cythonを学ぶためにまったく新しい言語を学ぶのではなく、すでに得意な言語の観点からcythonを学びたいと思っています。
1)psycoをお勧めしないでください
編集:公式のcythonドキュメントを理解するのに役立つ情報はすべて有用な情報です