I would like to convert an array with many dimensions (more than 2) into a 2D array where other dimensions would be converted to nested stand-alone arrays.
So if I have an array like numpy.arange(3 * 4 * 5 * 5 * 5).reshape((3, 4, 5, 5, 5))
, I would like to convert it to an array of shape (3, 4)
, where each element would be an array of shape (5, 5, 5)
. The dtype of the outer array would be object
.
For example, for np.arange(8).reshape((1, 1, 2, 2, 2))
, the output would be equivalent to:
a = np.ndarray(shape=(1,1), dtype=object)
a[0, 0] = np.arange(8).reshape((1, 1, 2, 2, 2))[0, 0, :, :, :]
How can I do this efficiently?