col2 = matrix[:, (2)]
nrows = col2.size - nr + 1
out = np.zeros((nr - 1 + nrows, nr))
col2_2D = np.take(col2, np.arange(nrows)[:, (None)] + np.arange(nr))
out[nr - 1:] = col2_2D
Numpy преобразование значений столбца в значения строки