reshape_as_blocks#
- astropy.nddata.reshape_as_blocks(data, block_size)[source]#
Reshape a data array into blocks.
This is useful to efficiently apply functions on block subsets of the data instead of using loops. The reshaped array is a view of the input data array.
Added in version 4.1.
- Parameters:
- data
ndarray
The input data array.
- block_size
int
or array_like (int
) The integer block size along each axis. If
block_size
is a scalar anddata
has more than one dimension, thenblock_size
will be used for for every axis. Each dimension ofblock_size
must divide evenly into the corresponding dimension ofdata
.
- data
- Returns:
- output
ndarray
The reshaped array as a view of the input
data
array.
- output
Examples
>>> import numpy as np >>> from astropy.nddata import reshape_as_blocks >>> data = np.arange(16).reshape(4, 4) >>> data array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]]) >>> reshape_as_blocks(data, (2, 2)) array([[[[ 0, 1], [ 4, 5]], [[ 2, 3], [ 6, 7]]], [[[ 8, 9], [12, 13]], [[10, 11], [14, 15]]]])