私はismemberを使って特定のMatlabコーディング "パターン"に対してNumpyの同等物を見つけるのに苦労しています。NumLab(Python)のMatlab 'ismember'に相当しますか?
残念ながら、このコードは、ほとんどの時間がMATLABスクリプトで費やされている傾向がありますので、効率的なNumpyを見つけたいと思っています。
基本パターンは、サブセットを大きなグリッドにマッピングすることから成ります。私は、並列配列として格納されているキーの値のペアのセットを持っている、私は同じ方法で格納されている大きな値のペアの大きなリストにこれらの値を挿入したい。
具体的には、毎月の時間グリッドに次のようにマッピングする四半期のGDPデータがあります。
quarters = [200712 200803 200806 200809 200812 200903];
gdp_q = [10.1 10.5 11.1 11.8 10.9 10.3];
months = 200801 : 200812;
gdp_m = NaN(size(months));
[tf, loc] = ismember(quarters, months);
gdp_m(loc(tf)) = gdp_q(tf);
ないすべての四半期がそうTFと変数が必要とされているLOC両方ヶ月のリストに表示されていることに注意してください。
私はStackOverflowの上で同様の質問を見てきましたが、彼らはどちらかだけの純粋なPythonのソリューション(here)またはnumpyのは、その後使用されるLOC引数は(here)が返されませんを与えます。
この特定のコードパターンは繰り返し発生する傾向があり、機能のCPU時間の大部分を使い切るので、効率的なソリューションが私にとって本当に重要です。
コメントやデザインの変更も歓迎します。
あなたがそれを自分で実装する場合は、次のようにします。1.オブジェクトがハッシュを取る場合、すでに数字があります。それらをソートしてバイナリ検索を使用します。 2.別のアプローチ - ハッシュマップを使用 – Mikhail
私はこれを考える[アレックスMartelliによる回答](http://stackoverflow.com/questions/1273041/how-can-i-implement-matlabs-ismember-command-in-python/1273815# 1273815)はあなたが得ることができる最高です。 –