我有一个网格,例如100x100,并且该网格上有一些与我相关的小点子集。对于每个相关点,我想根据其在网格中的位置分配一些长度为N的信号。我不想仅仅制作一个100x100xN的网格,因为N非常大(很容易成千上万),而且重要的点数也很小(百分之几)。这是设置示例:
import numpy as np
n_points = 500
Tsteps = 500000
points = np.random.randint(100,size = (2,n_points))
signals = np.zeros((n_points,Tsteps))
此处signals[i,:]
是与坐标为points[:,i]
的网格点关联的信号。我想将网格某个区域中所有点的信号设置为某个测试信号,例如desired_signal = np.ones(Tsteps)
。我要设置的区域由边界坐标可能随时间变化的另一个数组确定。在给定的时间t
,它看起来像这样:rgn_bdy[:,:,t] = np.array([[20,50],[20,50]])
。基本上,我想找到一种将与在该区域中具有坐标的点关联的信号设置为所需信号的快速方法。现在,我只是在遍历每个点和每个时间步,并且花了太长的时间才实用。我认为必须有一些精美的索引技巧才能快速完成此操作,但对我而言这并不明显。我如何才能更有效地做到这一点?
编辑:我对问题进行了编辑,以注意感兴趣的对象会随着时间而变化,这是一个重要的并发症。