w3resource

NumPy: Create a new array from a given array swapping first and last rows


Swap Rows in 4x4 Random Array

Write a NumPy program to create a 4x4 array with random values. Create an array from the said array swapping first and last rows.

This problem involves writing a NumPy program to create a 4x4 array filled with random values. Then, the program creates a new array by swapping the first and last rows of the original array. By utilizing NumPy's array manipulation capabilities, such as slicing and indexing, the program efficiently performs the row swapping operation, resulting in a modified array where the first and last rows have exchanged positions.

Sample Solution :

Python Code :

# Importing the NumPy library with an alias 'np'
import numpy as np

# Creating a NumPy array 'nums' ranging from 0 to 15 and reshaping it into a 4x4 array
nums = np.arange(16, dtype='int').reshape(-1, 4)

# Printing a message indicating the original array
print("Original array:")
print(nums)

# Swapping the first and last rows of the 'nums' array
# nums[[0,-1],:] accesses the first and last rows, and then swaps them using advanced indexing
nums[[0,-1],:] = nums[[-1,0],:]

# Printing the array after swapping the first and last rows
print("\nNew array after swapping first and last rows of the said array:")
print(nums) 

Output:

Original array:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]

New array after swapping first and last rows of the said array:
[[12 13 14 15]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [ 0  1  2  3]]

Explanation:

In the above code -

np.arange(16, dtype='int').reshape(-1, 4) creates a 2D array of integers from 0 to 15 with a shape of 4 rows and 4 columns stores in the variable ‘nums’. The -1 in the reshape method means NumPy will automatically infer the number of rows based on the number of columns specified (4 in this case).

nums[[0,-1],:] = nums[[-1,0],:]: This line swaps the first (0-th) and last (-1-th) rows of the nums array. It uses advanced indexing to achieve this:

  • nums[[0,-1],:]: Selects the first and last rows of the array.
  • nums[[-1,0],:]: Selects the last and first rows of the array, in that order.

Then, the selected rows are assigned to each other, effectively swapping their positions in the array.

Python-Numpy Code Editor: