给定NumPY中的一个NxM矩阵,我希望将其简化为一个NxO矩阵(O<<&书信电报;M) 使NxO矩阵中的值从原始矩阵中等距采样线性插值
作为一个例子,考虑3x10矩阵:
[
[1 2 3 4 5 6 7 8 9 10]
[10 9 8 7 6 5 4 3 2 1 ]
[4 6 4 6 4 6 4 6 4 6 ]
]
如果我将此样本向下采样为3x4矩阵,则值可能会如下对齐:
1 2 3 4 5 6 7 8 9 10
|---|---|---|---|---|---|---|---|---|
* * * *
1 2 3 4
通常,给定M个原始元素向下采样为O个新元素,第一个元素应从(M-1)/(O+1)
中采样,并在(M-1)/(O+1)
步骤中进行额外采样。这可以在上图中看到,其中10个原始元素在元素之间产生9个“间隙”。我们希望将这9个“间隙”的距离分成5个相等的部分(在左右两侧留出相等的空间,每个元素之间的间距相等)。因此,每个新元素的间距为9/5=1.8“间隙”:
使用基本线性插值,我们可以说“元素1.8”是元素2的80%加上元素1的20%
因此,我的最终矩阵如下所示:
[
[2.8 4.6 6.4 8.2]
[8.2 6.4 4.6 2.8]
[4.4 4.8 5.2 5.6]
]
我考虑编写一个函数来计算输出值,并使用np.apply_along_axis()
方法,但后来我看到this StackOverflow post说这样做只是for循环的一个脆弱包装,最好对函数进行向量化
那么如何将其矢量化呢?能做到吗
试试这个功能
它基于您描述的插值创建权重矩阵,然后将该权重应用于整个矩阵
相关问题 更多 >
编程相关推荐