我需要做一个函数,它接受一个高分辨率的索引向量,例如hr
,并在低分辨率lr
采样时输出相应的索引。在
我的想法是创建一个翻译矩阵,如下所示:
在下面的矩阵中,其高分辨率为(6, 12)
,其低分辨率为(2, 4)
如果输入向量是
v = [0, 1, 4, 24, 36, 42]
我会把我的翻译成
w = m[v]
我希望输出[0,0,1,0,4,6]
问题:
- 走这条路对吗?在
- 如果是这样,我如何在numpy中创建
m
ndarray?在
另外,如果这个问题有更好的名字,请告诉我,以便我可以改变它。在
Tags:
节省空间的方式:
空间效率低的方式:
^{pr2}$这里的主要思想是使用^{} 将一个“平面索引”转换成给定数组形状的坐标元组。在
例如
它返回两个索引数组,它们一起给出shape(6,12)数组中第0、1、4等元素的坐标。在
空间效率低下的方法构造大的}。在
m
数组,然后通过索引m
和这些坐标:w = m[np.unravel_index(v, hires)]
来找到{空间效率更高的方法只需将坐标除以块大小(在本例中为3×3)来生成低分辨率坐标。 这就避免了生成大矩阵
m
的需要。我们可以用更小的矩阵然后索引到:
w = m[i // h, j // w]
。在您可能还对^{} 感兴趣,它是
np.unravel_index
的逆:它将坐标数组
i
和j
转换回v
。在相关问题 更多 >
编程相关推荐