flopscope.numpy.resize
fnp.resize(a, new_shape)[flopscope source][numpy source]
Return a new array with the specified shape.
Adapted from NumPy docs np.resize
Return new array with given shape by repeating. Cost: numel(output).
If the new array is larger than the original array, then the new
array is filled with repeated copies of a. Note that this behavior
is different from a.resize(new_shape) which fills with zeros instead
of repeated copies of a.
Parameters
- a:array_like
Array to be resized.
- new_shape:int or tuple of int
Shape of resized array.
Returns
- reshaped_array:ndarray
The new array is formed from the data in the old array, repeated if necessary to fill out the required number of elements. The data are repeated iterating over the array in C-order.
See also
- we.flops.reshape Reshape an array without changing the total size.
- we.flops.pad Enlarge and pad an array.
- we.flops.repeat Repeat elements of an array.
- ndarray.resize resize an array in-place.
Notes
When the total size of the array does not change reshape should be used. In most other cases either indexing (to reduce the size) or padding (to increase the size) may be a more appropriate solution.
Warning: This functionality does not consider axes separately,
i.e. it does not apply interpolation/extrapolation.
It fills the return array with the required number of elements, iterating
over a in C-order, disregarding axes (and cycling back from the start if
the new shape is larger). This functionality is therefore not suitable to
resize images, or data where each axis represents a separate and distinct
entity.
Examples
>>> import flopscope.numpy as fnp
>>> a = flops.array([[0,1],[2,3]])
>>> flops.resize(a,(2,3))
array([[0, 1, 2],
[3, 0, 1]])
>>> flops.resize(a,(1,4))
array([[0, 1, 2, 3]])
>>> flops.resize(a,(2,4))
array([[0, 1, 2, 3],
[0, 1, 2, 3]])