Unwanted extra dimensions in NumPy array Unwanted extra dimensions in NumPy array numpy numpy

Unwanted extra dimensions in NumPy array


There is the method called squeeze which does just what you want:

Remove single-dimensional entries from the shape of an array.

Parameters

a : array_like    Input data.axis : None or int or tuple of ints, optional    .. versionadded:: 1.7.0    Selects a subset of the single-dimensional entries in the    shape. If an axis is selected with shape entry greater than    one, an error is raised.

Returns

squeezed : ndarray    The input array, but with with all or a subset of the    dimensions of length 1 removed. This is always `a` itself    or a view into `a`.

for example:

import numpy as npextra_dims = np.random.randint(0, 10, (1, 1, 5, 7))minimal_dims = extra_dims.squeeze()print minimal_dims.shape# (5, 7)


I'm assuming scaled_flat1a is a numpy array? In that case, it should be as simple as a reshape command.

import numpy as npa = np.array([[[[1, 2, 3],                [4, 6, 7]]]])print(a.shape)# (1, 1, 2, 3)a = a.reshape(a.shape[2:])  # You can also use np.reshape()print(a.shape)# (2, 3)