В принципе, есть ли способ преобразовать одномерный список, который был "сплющен" с помощью функции numpy.ravel()
, в его первоначальную трехмерную форму? Я знаю размеры, и можно спросить, почему я просто не использую исходный 3D-массив, вместо того, чтобы конвертировать его - но есть причины для этого.
Мне просто нужно знать, могу ли я на самом деле создать тот же 3D-массив из 1D-массива, который был создан с использованием numpy.ravel()
в 3D-массиве.
В основном 3D-массив был создан так:
import numpy as np
nx = 50
ny = 40
nz = 150
x = np.linspace(1, 51, nx)
y = np.linspace(1, 41, ny)
z = np.linspace(1, 151, nz)
x_bc = x[:, np.newaxis, np.newaxis]
y_bc = y[np.newaxis, :, np.newaxis]
z_bc = z[np.newaxis, np.newaxis, :]
arr = x_bc + y_bc + z_bc
И нет, я не могу просто сделать это, чтобы получить его обратно, так как вычисления были выполнены для него в то же время, а затем преобразованы в одномерный массив в то же время. Таким образом, данные в этом массиве не совпадают с теми, которые я на самом деле хочу преобразовать обратно.