私の問題のおもちゃケース:
サイズが numpy の配列、たとえば 1000 があります。
import numpy as np
a = np.arange(1000)
aから別の配列bへのマッピングである「射影配列」pもあります。
p = np.random.randint(0,1000,(1000,1000))
「派手なインデックス」を使用してaからbを取得するのは簡単です。
b = a[p]
ただし、以前のいくつかの質問/回答とnumpyのドキュメントで指摘されているように、bはビューではありません。
残念ながら、私の場合、長いシミュレーションの過程で変化する値だけが変化し、各反復で派手なインデックスを使用してbを取得すると、非常にコストがかかります。私はbから読み取るだけで、変更しません。
ファンシーなインデックス作成でこれを解決することは (まだ) 不可能であることを理解しています。
誰かが同様の問題/ボトルネックを抱えていて、他の回避策を思いついたのではないかと思っていましたか?