out = np.zeros((nr - 1 + nrows, nr))
col2_2D = np.take(col2, np.arange(nrows)[:, (None)] + np.arange(nr))
out[nr - 1:] = col2_2D
return out

def vect_app2(matrix, nr):
    col2 = matrix[:, (2)]
nrows = col2.size - nr + 1
out = np.zeros((nr - 1 + nrows, nr))
n = col2.strides[0]
col2_2D = np.lib.stride_tricks.as_strided(col2, shape=(nrows, nr), strides=
    (n, n))
out[nr - 1:] = col2_2D
return out
Numpy преобразование значений столбца в значения строки