У меня проблемы с поиском способа клонирования 1-D массива для создания 3-D массива.Скажем, например, у меня есть
z = np.array([0, 2, 3, 5, 7, 9, 10])
Это представляет вертикальный столбец в трехмерном пространстве (скажем, в метрах, например).Я хочу создать горизонтальное измерение (x, y), чтобы конечный массив имел размеры (len(z), len(x), len(y))
, где каждый столбец в каждой точке x, y одинаков.Я делаю это так, чтобы я мог сопоставить пространственные измерения с другими имеющимися у меня трехмерными данными.
То есть с массивом z
в качестве входных данных и заданными горизонтальными размерами, скажем, ndimx = 3, ndimy = 2, я хочу найти функцию, которая выводит массив
np.array([ [[0, 0], [0, 0], [0, 0]],
[[2, 2], [2, 2], [2, 2]],
[[3, 3], [3, 3], [3, 3]],
[[5, 5], [5, 5], [5, 5]],
[[7, 7], [7, 7], [7, 7]],
[[9, 9], [9, 9], [9, 9]],
[[10, 10], [10, 10], [10, 10]] ])
, который имеет форму (7, 3, 2).Сначала это показалось мне тривиальным, но после нескольких лет экспериментов с np.dstack (), np.astype (), np.repeat () и транспонированием с () .T, я не могу получить правильный размерный порядок.
Здесь важно то, что вертикальный столбец - это первое измерение.Я готов поспорить, что ответ на самом деле тривиален, я просто не могу найти магическую функцию, которая будет делать это.
Есть предложения?