У меня есть 1D массив, который мне нужно расширить в 3D, с исходным массивом, скопированным в axis=0
.
В настоящее время у меня есть такая установка:
import numpy as np
x = np.array((1, 2, 3, 4, 5))
y = np.zeros((len(x), 5, 5))
for i in range(5):
for j in range(5):
y[:, i, j] = x
print(y)
[[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
[[2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2.]]
[[3. 3. 3. 3. 3.]
[3. 3. 3. 3. 3.]
[3. 3. 3. 3. 3.]
[3. 3. 3. 3. 3.]
[3. 3. 3. 3. 3.]]
[[4. 4. 4. 4. 4.]
[4. 4. 4. 4. 4.]
[4. 4. 4. 4. 4.]
[4. 4. 4. 4. 4.]
[4. 4. 4. 4. 4.]]
[[5. 5. 5. 5. 5.]
[5. 5. 5. 5. 5.]
[5. 5. 5. 5. 5.]
[5. 5. 5. 5. 5.]
[5. 5. 5. 5. 5.]]]
Мне кажется, что должен быть более простой способ сделать это, чем с помощью вложенных циклов for
, но все, что появляется при беглом поиске, показывает, как разрезать длинный массив 1D и сделать его трехмерным, но не копировать исходный измерение в 2 больше измерений.