我的问题的玩具箱:
我有一个大小为 1000 的 numpy 数组:
import numpy as np
a = np.arange(1000)
我还有一个“投影数组” p它是从a到另一个数组b的映射:
p = np.random.randint(0,1000,(1000,1000))
使用“花式索引”很容易从a中得到b :
b = a[p]
但是b不是一个视图,正如之前的几个问题/答案和 numpy 文档所指出的那样。
不幸的是,在我的情况下,只有在长时间模拟过程中发生变化的值以及在每次迭代中使用花哨的索引来获得b变得非常昂贵。我只从b读取而不修改它。
我知道(还)不可能用花哨的索引来解决这个问题。
我想知道是否有人有类似的问题/瓶颈并想出了其他解决方法?