Чтобы сделать это исключительно в numpy, не возвращаясь к спискам python, вам нужно использовать expand_dims
с последующей транспонированием или reshape
для преобразования вектора в матрицу перед использованием repeat
.
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
# array([1, 2, 3, 4, 5, 6, 7, 8])
x = x.reshape(-1, 1)
# array([[1],
# [2],
# [3],
# [4],
# [5],
# [6],
# [7],
# [8]])
np.repeat(x.reshape(-1, 1), 3, 1)
# array([[1, 1, 1],
# [2, 2, 2],
# [3, 3, 3],
# [4, 4, 4],
# [5, 5, 5],
# [6, 6, 6],
# [7, 7, 7],
# [8, 8, 8]])
Использование расширенного затемнения и транспонирования будет похоже на
np.repeat(np.expand_dims(x, 0).T, 3, 1)
Тот же результат.