Transform the ndarray based on minimum and maximum values:
- The clip() method of ndarray transforms an ndarray object in such a way that the values are in between the maximum and minimum values inclusive of the values specified.
- At least one of the parameters - min or max should be passed to the clip() method for it to work without any error.
- If there are any values below the minimum value they will be replaced by the value as specified the min parameter.
- If there are any values above the maximum value they will be replaced by the value as specified the max parameter.
Example – numpy.ndarray.clip:
import numpy as np
# Create a 2 dimensional array array_2D = np.array([[9,8,6], [5,4,1], [11,42,10], ])
# Minimum value is 5 and maximum value is 10 clippedArray = array_2D.clip(5, 10)
print("Original Array:") print(array_2D)
print("Clipped Array:") print(clippedArray) |
Output:
Original Array: [[ 9 8 6] [ 5 4 1] [11 42 10]] Clipped Array: [[ 9 8 6] [ 5 5 5] [10 10 10]] |
Transform the n-dimensional array into a one-dimensional array:
- The flatten() method of numpy.ndarray transforms any n-dimensional array represented by the ndarray into a one dimensional array.
- The transformation from n-dimensions to one dimension is done as specified by the parameter order.
- The order parameter of flatten() method specifies whether the transformation is based on column major i.e, Fortran Style - denoted by literal 'F' or row major i.e, C Style - denoted by literal 'F'.
- The default order is based on row major.
- ravel() method can also be used to transform an n-dimensional array into a one dimensional array. Please note that ravel() may not always return a copy that represents the one-dimensional array.
Example:
import numpy as np
# Create a 2-dimensional array array_2d = np.array([[5, 10, 15, 20], [25, 30, 35, 40]])
print("Original Array") print(array_2d)
# Make a one dimensional array - default is row major rowMajor = array_2d.flatten() print("Flattened 2-dimensional array as 1-dimensional array - transformed using row major:") print(rowMajor)
# Make a one dimensional array - column major colMajor = array_2d.flatten('F') print("Flattened 2-dimensional array as 1-dimensional array - transformed using column major:") print(colMajor) |
Output:
Original Array [[ 5 10 15 20] [25 30 35 40]] Flattened 2-dimensional array as 1-dimensional array - transformed using row major [ 5 10 15 20 25 30 35 40] Flattened 2-dimensional array as 1-dimensional array - transformed using column major [ 5 25 10 30 15 35 20 40] |
Change the shape of an array:
- The reshape() method of ndarray takes a parameter shape as an int or a tuple of ints and transforms the shape of an n-dimensional array.
- The returned object may not be a copy and could be a view of the original array.
Example:
import numpy as np
# Create a 2-dimensional array array_3d = np.array([[[5, 10, 15, 20], [25, 30, 35, 40]],
[[45, 50, 65, 70], [75, 80, 85, 90]]])
print("Original Array:") print(array_3d)
print("Dimensions of the original Array:") print(array_3d.ndim)
print("Shape of the original Array:") print(array_3d.shape)
reshaped1 = array_3d.reshape((2,2,2,2)) print("4d array - Reshaped using row major:") print(reshaped1)
reshaped2 = array_3d.reshape((2,2,2,2), order='F') print("4d array - Reshaped using column major:") print(reshaped2)
reshaped3 = array_3d.reshape((2,8)) print("2d array - Reshaped using row major:") print(reshaped3)
print("2d array - Reshaped using column major:") reshaped4 = array_3d.reshape((2,8), order='F') print(reshaped4)
reshaped5 = array_3d.reshape((16)) print("1d array - Reshaped using row major:") print(reshaped5)
print("1d array - Reshaped using column major:") reshaped6 = array_3d.reshape((16), order='F') print(reshaped6) |
Output:
Original Array: [[[ 5 10 15 20] [25 30 35 40]]
[[45 50 65 70] [75 80 85 90]]] Dimensions of the original Array: 3 Shape of the original Array: (2, 2, 4) 4d array - Reshaped using row major: [[[[ 5 10] [15 20]]
[[25 30] [35 40]]]
[[[45 50] [65 70]]
[[75 80] [85 90]]]] 4d array - Reshaped using column major: [[[[ 5 15] [10 20]]
[[25 35] [30 40]]]
[[[45 65] [50 70]]
[[75 85] [80 90]]]] 2d array - Reshaped using row major: [[ 5 10 15 20 25 30 35 40] [45 50 65 70 75 80 85 90]] 2d array - Reshaped using column major: [[ 5 25 10 30 15 35 20 40] [45 75 50 80 65 85 70 90]] 1d array - Reshaped using row major: [ 5 10 15 20 25 30 35 40 45 50 65 70 75 80 85 90] 1d array - Reshaped using column major: [ 5 45 25 75 10 50 30 80 15 65 35 85 20 70 40 90] |