首页 > 解决方案 > 用 numpy 在两个矩阵之间进行插值

问题描述

我有两个 HxW 矩阵AB. 我想得到一个 NxHxW 矩阵C,使得C[0]=A,C[-1]=B和剩余的每个切片在和N-2之间线性插值。是否有一个 numpy 函数我可以做到这一点,而不需要 for 循环?AB

标签: pythonnumpy

解决方案


如果您正在寻找仅 2 个点之间的线性插值,只需使用 linspace。

A = np.array([[0,1],
              [2,3]])

B = np.array([[1,  3],
              [-1,-2]])

C = np.linspace(A,B,4)   #<- Change this to H+2, which is H linearly interpolated values between the 2 points
C
array([[[ 0.        ,  1.        ],     #<-- A matrix is C[0]
        [ 2.        ,  3.        ]],

       [[ 0.33333333,  1.66666667],
        [ 1.        ,  1.33333333]],    #
                                        #<-- Elementwise equally spaced values
       [[ 0.66666667,  2.33333333],     #
        [ 0.        , -0.33333333]],

       [[ 1.        ,  3.        ],     #<-- B matrix is C[-1]
        [-1.        , -2.        ]]])

推荐阅读