假设一个数组a.shape == (N, M)和一个向量v.shape == (N,)。目标是计算argmin从每个元素中减去abs的- 也就是说,va
out = np.zeros(N, M)
for i in range(N):
for j in range(M):
out[i, j] = np.argmin(np.abs(a[i, j] - v))
我通过进行了矢量化实现np.matlib.repmat
,它速度更快,但需要O(M*N^2)
内存,这在实践中是不可接受的。计算仍然在 CPU 上完成,因此最好的选择似乎是在 C 中实现 for 循环作为扩展,但也许 Numpy 已经实现了这种逻辑。
可以?有任何可用的 Numpy 函数可以有效地实现上述功能吗?
素胚勾勒不出你
相关分类