我在尝试减少基于搜索距离的计算次数。我有N个节点和一个[NxN]
布尔掩码,它告诉我哪些节点与其他具有T
真值的节点在X距离内。
我还为每个节点提供了[Nx(d)]
数据,其中(d)
可以是(1)
、(3)
或(3x3)
。我想要的“稀疏”格式,这是一个[Tx(d)]
数组,这样我就可以做矢量计算沿着0轴。现在我这样做:sparseData=data.repeat(data.shape[0],axis=0).reshape(np.concatenate(([data.shape[0],data.shape])))[mask]
这是可行的,但如果N
太大,会导致内存错误,因为我用.repeat
创建的[NxNx(d)]
数组。如果我这样做:data[None,...][mask]
它不起作用,但似乎必须有一个更有效的方法来做到这一点。
1条答案
按热度按时间6mzjoqzu1#
你可以用
numpy.broadcast_to
创建一个视图,而不是重复数据:然而,更容易的是基于索引选择数据行: