numpyの検索(地図、またはポイント):私は大きなnumpyの配列持ち
array([[32, 32, 99, 9, 45], # A
[99, 45, 9, 45, 32],
[45, 45, 99, 99, 32],
[ 9, 9, 32, 45, 99]])
および特定の順序で一意の値の大っぽい配列:
array([ 99, 32, 45, 9]) # B
をどのようにすぐに私はでき(A
のないPythonの辞書、何のコピー、ないのpythonループが)ので、それはB
の値のなインデックスとなりA
の値を置き換えません:?
array([[1, 1, 0, 3, 2],
[0, 2, 3, 2, 1],
[2, 2, 0, 0, 1],
[3, 3, 1, 2, 0]])
私はこれを私の頭の上から外すことができず、ドキュメントでも見つけられないという理由で、冗談だと感じます。簡単なポイント!ここで
を使用して少し速く、所望の結果を計算することができます。 )、しかし記録のために、@ unutbuの解決策は、より良い一般的なパフォーマンスを持つようです。しかし、私が「Aの値を置き換える」と言ったときに欲しかったことを示唆しているかもしれない、「現場で」の解決策でもありませんでした。 ..私はCythonなしでは可能ではないと考えています。両方にありがとう! – Paul
私はまた、B.size << A.sizeの場合を除いて、unutbuの解が一般に速いことも発見しました。最適化を使用して複数のソリューションとティンカーを見ることは常に楽しいことです – JoshAdel