NumPy ndarray.resize()
The numpy.ndarray.resize() method changes the shape of an existing NumPy array in-place. If the new shape is larger, it fills the new elements with zeroes.
Syntax
ndarray.resize(new_shape, refcheck=True)Parameters
| Parameter | Type | Description | 
|---|---|---|
| new_shape | n ints or tuple of ints | The desired shape of the array. If the total elements mismatch, data is either truncated or repeated. | 
| refcheck | bool, optional | If False, disables reference checking, allowing resizing even if the array is referenced elsewhere. | 
Return Value
This method modifies the array in place and does not return a new array. If the new shape is larger, it fills new elements with 0.
Examples
1. Resizing a 1D Array to a Larger Size
In this example, we resize a 1D NumPy array to a larger shape, demonstrating how data repetition occurs.
import numpy as np  
# Create a 1D array with 3 elements
arr = np.array([1, 2, 3])  
# Resize to 6 elements (larger size)
arr.resize(6)  
print(arr)  # New elements are filled with 0Output:
[1 2 3 0 0 0]The extra elements are filled with 0.
2. Resizing a 2D Array to a Smaller Shape
Here, we shrink a 2D array to a smaller shape, where excess elements are discarded.
import numpy as np  
# Create a 2D array
arr = np.array([[1, 2, 3], 
                [4, 5, 6], 
                [7, 8, 9]])  
# Resize to a 2x2 array (smaller size)
arr.resize((2, 2))  
print(arr)  # The extra elements are removedOutput:
[[1 2]
 [3 4]]The remaining elements are taken in row-major order (left to right, top to bottom).
3. Resizing While Keeping References with refcheck=False
We disable reference checking to allow resizing even when the array is referenced elsewhere.
import numpy as np  
# Create a 1D array
arr = np.array([10, 20, 30, 40])  
# Create a reference to the array
arr_ref = arr  
# Resize with refcheck=False to avoid reference errors
arr.resize(6, refcheck=False)  
print(arr)  # The array is resized successfullyOutput:
[10 20 30 40  0  0]Even though arr is referenced elsewhere, refcheck=False allows resizing.
4. Resizing a 2D Array to a Different Shape
We transform a 2D array into a different shape, keeping elements in row-major order.
import numpy as np  
# Create a 2D array
arr = np.array([[1, 2, 3], 
                [4, 5, 6]])  
# Resize to a 3x2 array
arr.resize((3, 2))  
print(arr)  # The shape changes while preserving row-major orderOutput:
[[1 2]
 [3 4]
 [5 6]]The array is rearranged to fit the new dimensions while preserving order.
