問題タブ [numexpr]
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 - 不要な配列を割り当てずに演算子の結果を合計する
2 つの numpy ブール配列 (a
およびb
) があります。それらの要素のいくつが等しいかを見つける必要があります。現在、私はそうしていますlen(a) - (a ^ b).sum()
が、私が理解しているように、xor操作はまったく新しいnumpy配列を作成します。不要な一時配列を作成せずに、この望ましい動作を効率的に実装するにはどうすればよいですか?
numexpr を使用してみましたが、うまく動作しません。True が 1 で False が 0 であるという概念をサポートしていないため、 を使用する必要ne.evaluate("sum(where(a==b, 1, 0))")
があり、約 2 倍の時間がかかります。
編集:これらの配列の 1 つが実際には異なるサイズの別の配列へのビューであり、両方の配列が不変であると見なされるべきであることに言及するのを忘れていました。どちらの配列も 2 次元で、サイズは 25x40 前後になる傾向があります。
はい、これは私のプログラムのボトルネックであり、最適化する価値があります。
mergesort - pytableでマージソート
ID を持つ 2 つの大きなテーブル (メモリに収まらない) があり、マージ (結合) したいと考えています。
pytables でそれをすばやく行う方法はありますか? 2 つのテーブルの完全なインデックス作成と、この種のアルゴリズムで itersorted を使用することに感謝します: http://en.literateprograms.org/Merge_sort_%28Python%29。
しかし、numexp ライブラリを利用してそれを高速化することは可能でしょうか?
どうも。
python - pytables CArrayで最大の非無限要素を見つける
これは簡単なはずですが、私は pytables に非常に慣れていません。アプリケーションのデータセット サイズが大きすぎてメモリに保持できないため、PyTable CArray を使用しています。ただし、無限ではない配列内の最大要素を見つける必要があります。素朴にnumpyで私はこれをします:
明らかに、配列全体をメモリに導入しないと、PyTables では機能しません。メモリに収まるウィンドウで CArray をループすることはできましたが、最大/最小削減操作がなかったら驚くでしょう。その配列の条件付き最大要素を取得するエレガントなメカニズムはありますか?
python - pytablesでread_sortedとExprを組み合わせる最もメモリ効率の良い方法は何ですか?
Pytablesテーブル(列:x、y、z)をソートされた順序(z列にはCSIがあります)で読み取り、次のような式を評価することを組み合わせる最もメモリ効率の良い方法を探しています
ここで、a と b は定数です。これまでの私の唯一の解決策は、「sortyby=z」フラグを使用してテーブル全体をコピーし、テーブルで部分的に式を評価することでした。
注: 結果 x+a*y+b*z をメモリに保持して、Pytables で直接利用できないリダクション操作を実行してから、新しい Pytables テーブルに保存したいと考えています。