РЕДАКТИРОВАТЬ : теперь посмотрите гораздо лучшее решение Шалома Рохмана ... Я не буду удалять это, на случай, если все еще есть полезный контент, но, очевидно, np.repeat
- это способ go.
Это помогает? Если матрицы представляют собой массив numpy:
matrices = np.array([mat_a, mat_b])
И у вас есть список [0, 0, 1, 1, 1]
indices = [i for i, n in enumerate(repeats) for _ in range(n)]
, вы можете проиндексировать его, используя:
matrices[indices]
Что дает:
array([[[1, 2],
[3, 4]],
[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]],
[[5, 6],
[7, 8]],
[[5, 6],
[7, 8]]])