scipp.squeeze#
- scipp.squeeze(x, dim=None)#
Remove dimensions of length 1.
This is equivalent to indexing the squeezed dimensions with index 0, that is
squeeze(x, ['x', 'y'])
is equivalent tox['x', 0]['y', 0]
.- Parameters:
- Returns:
Same type as input
– Input with length-1 dimensions removed.- Raises:
scipp.DimensionError – If a dimension in
dim
does not have length 1.
Examples
>>> v = sc.arange('a', 3).fold('a', sizes={'x': 1, 'y': 3, 'z': 1}) >>> v <scipp.Variable> (x: 1, y: 3, z: 1) int64 [dimensionless] [0, 1, 2] >>> sc.squeeze(v) <scipp.Variable> (y: 3) int64 [dimensionless] [0, 1, 2] >>> sc.squeeze(v, 'z') <scipp.Variable> (x: 1, y: 3) int64 [dimensionless] [0, 1, 2] >>> sc.squeeze(v, ['x', 'z']) <scipp.Variable> (y: 3) int64 [dimensionless] [0, 1, 2]
Coordinates for squeezed dimensions become unaligned:
>>> da = sc.DataArray(v, coords={'x': sc.arange('x', 1), ... 'y': sc.arange('y', 3)}) >>> da <scipp.DataArray> Dimensions: Sizes[x:1, y:3, z:1, ] Coordinates: * x int64 [dimensionless] (x) [0] * y int64 [dimensionless] (y) [0, 1, 2] Data: int64 [dimensionless] (x, y, z) [0, 1, 2] >>> sc.squeeze(da) <scipp.DataArray> Dimensions: Sizes[y:3, ] Coordinates: x int64 [dimensionless] () 0 * y int64 [dimensionless] (y) [0, 1, 2] Data: int64 [dimensionless] (y) [0, 1, 2]