問題タブ [numpy]
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 - NumPy、PIL による画像の追加
NumPy と PIL を使用して 2 つの画像を追加しようとしています。MATLABでこれを行う方法は次のようになります。
私はこのようなものを得る:
代替テキスト http://www.deadlink.cc/matlab.jpg
合成プログラムを使用して画像を追加すると、MATLAB の結果は正しいようです。
Python では、次のように同じことをしようとしています。
そして、私は次のようなものを取得します:
代替テキスト http://www.deadlink.cc/python.jpg
ファンキーな色がたくさん出てくるのはなぜですか? も使用してみImageMath.eval("a+b", a=im1, b=im2)
ましたが、RGB unsupported のエラーが出ます。
またImage.blend()
、アルファが必要な but があることもわかりました。
私が探しているものを達成するための最良の方法は何ですか?
ソース画像 (画像は削除されています):
代替テキスト http://www.deadlink.cc/_1.jpg 代替テキスト http://www.deadlink.cc/_2.jpg
画像の追加アイコンを使用してソース画像を追加したところ、投稿を編集しているときにソース画像が表示されましたが、何らかの理由で画像が投稿に表示されません。
(画像は削除されました) 2013 05 09
python - 2 つの数値が 10 進数の有効桁数 n に丸められたときにほぼ等しいかどうかを判別する関数
サードパーティが提供するライブラリのテストを依頼されました。ライブラリは有効数字n桁まで正確であることが知られています。重要度の低いエラーは無視しても問題ありません。結果を比較するのに役立つ関数を書きたい:
この関数の目的は、2 つの浮動小数点数 (a と b) がほぼ等しいかどうかを判断することです。a==b (完全一致) の場合、または a と b が10 進数で書かれたsigfig有効数字に丸められたときに同じ値を持つ場合、関数は True を返します。
誰かが良い実装を提案できますか? ミニユニットテストを書きました。私のテストでバグが見られない限り、適切な実装は以下に合格する必要があります。
その他の注意事項:
- 値 a および b は、int、float、または numpy.float64 型の可能性があります。値 a と b は常に同じ型になります。変換によって関数に追加のエラーが発生しないことが重要です。
- これを数値のままにしておきます。そのため、文字列に変換したり、数学以外のトリックを使用したりする関数は理想的ではありません。このプログラムは、関数が本来の機能を果たしていることを証明したいと考えている数学者によって監査されます。
- 速さ…たくさんの数字を比較しなければならないので、速ければ速いほどいいです。
- numpy、scipy、および標準ライブラリがあります。特にプロジェクトのこのような小さな部分については、他のものを手に入れるのは難しいでしょう.
python - numpy ソートに適した配列をどのように構築しますか?
2 つの配列を同時に並べ替える必要があります。または、配列の 1 つを並べ替えて、関連付けられた配列の対応する要素を並べ替える必要があります。つまり、配列が [(5, 33), (4, 44), (3, 55)] で、最初の軸 (dtype='alpha' の下にラベルが付けられています) で並べ替えた場合、次のようになります: [(3.0, 55.0 ) (4.0, 44.0) (5.0, 33.0)]。これらは非常に大きなデータ セットであり、他の操作を行う前に (nlog(n) 速度のために) 最初に並べ替える必要があります。ソートアルゴリズムを機能させるための適切な方法で、2つの別々の配列をマージする方法がわかりません。私の問題はかなり単純だと思います。私は3つの異なる方法を試しました:
エラーが発生するため、1 回目と 2 回目の試行をコメントアウトしました。3 回目の試行は、RTFM で見たものを反映していたため、機能することはわかっていました。配列 x と y (非常に大きく、例のみを示します) が与えられた場合、numpy.sort で適切に呼び出すことができる配列 (値と呼ばれる) を構築するにはどうすればよいですか?
*** Zip はうまく機能します。ありがとうございます。おまけの質問: 並べ替えられたデータを後で 2 つの配列に再度解凍するにはどうすればよいですか?
python - NumPy で空の配列/行列を作成するにはどうすればよいですか?
通常リストを使用する方法で配列または行列を使用する方法がわかりません。空の配列 (または行列) を作成し、一度に 1 つの列 (または行) を追加したいと考えています。
現時点では、これを行う唯一の方法は次のとおりです。
それがリストの場合は、次のようにします。
NumPy配列または行列にそのような表記法を使用する方法はありますか?
python - C API で NumPy マトリックスを作成する方法はありますか?
見つけた NumPy C API のドキュメントを読みましたが、2 次元配列ではなく、C API で行列オブジェクトを作成できる可能性があるかどうかを確認できませんでした。この関数は数学行列での作業を目的としており、ユーザーがこの値を配列から行列に変換するのを忘れて行列乗算を呼び出した場合に奇妙な結果が得られることは望ましくありません (行列サブクラスの唯一の違いは乗算と累乗です)。
python - 辞書からNumPy配列を作成する最良の方法は?
私はNumPyを始めたばかりなので、いくつかのコアコンセプトが欠けている可能性があります...
値がリストである辞書から NumPy 配列を作成する最良の方法は何ですか?
このようなもの:
次のようになります。
各行でいくつかの基本的な統計を実行します。たとえば、次のようになります。
質問:
辞書から numpy.array を作成するための最良/最も効率的な方法は何ですか? 辞書は大きいです。それぞれ約 20 のアイテムを持つ数百万のキー。
各「行」の値の数は異なります。numpy が均一なサイズを望んでいることを正しく理解していれば、不足しているアイテムを std() を幸せにするために何を記入すればよいでしょうか?
更新: 言い忘れたことの 1 つ - Python の手法は合理的ですが (たとえば、数百万のアイテムをループするのは高速です)、単一の CPU に制限されます。Numpy 操作はハードウェアに合わせて適切にスケーリングされ、すべての CPU にヒットするため、魅力的です。
numpy - メモリ消費を減らすために scipy/numpy の精度を下げる方法はありますか?
私の 64 ビット Debian/Lenny システム (4GByte RAM + 4GByte スワップ パーティション) では、次のことが正常に実行できます。
しかし、f が aの場合、メモリ消費は衝撃的であり、トレースバックなしでnp.complex128
は、結果に対してこれ以上のことはできません (たとえば、係数を変調してから)。f=ifftn(f)
MemoryError
RAMを追加したり、スワップパーティションを拡張したりするのではなく、scipy/numpyの「デフォルト精度」を制御し、代わりにcomplex64配列を計算させる方法はありますか?
私は後でそれを減らすことができることを知っていf=array(f,dtype=np.complex64)
ます; 私は実際に 32 ビットの精度と半分のメモリで FFT 作業を行うようにしています。
python - numpy.correlateを使用して自己相関を行うにはどうすればよいですか?
数値のセットの自己相関を行う必要があります。これは、私が理解しているように、セットとそれ自体の相関にすぎません。
numpyのcorrelate関数を使用して試しましたが、ほとんどの場合、最初の数値が最大ではないベクトルが得られるため、結果は信じられません。
したがって、この質問は実際には2つの質問です。
- 正確には何をしているの
numpy.correlate
ですか? - 自己相関を行うためにそれ(または他の何か)をどのように使用できますか?
python - 文字列を漬けるより効率的な方法
pickleモジュールは、pickle化時に文字列エスケープ文字を使用しているようです。これは、たとえばnumpy配列では非効率になります。次のことを考慮してください
長さはそれぞれ1133文字と4249文字です。
z.dumps()は「\ x00 \ x00」(文字列の実際のゼロ)のようなものを明らかにしますが、pickleは文字列のrepr()関数を使用しているようで、「'\ x00 \ x00'」(ゼロはASCIIゼロ)を生成します。
つまり、(z.dumps()の「0」== False)および(cPickle.dumps(z.dumps())の「0」== True)