w3resource

Cross-Indexing a 2D NumPy array using np.ix_


Indexing with np.ix_:

Write a NumPy program that creates two 1D NumPy arrays and uses np.ix_ to perform cross-indexing on a 2D array.

Sample Solution:

Python Code:

import numpy as np

# Create a 2D NumPy array of shape (5, 5) with random integers
array_2d = np.random.randint(0, 100, size=(5, 5))

# Create two 1D NumPy arrays for cross-indexing
row_indices = np.array([1, 3])
col_indices = np.array([0, 2, 4])

# Use np.ix_ to create an open mesh from the row and column indices
index_grid = np.ix_(row_indices, col_indices)

# Use the index grid to select elements from the 2D array
selected_elements = array_2d[index_grid]

# Print the original array and the selected elements
print('Original 2D array:\n', array_2d)
print('Row indices:\n', row_indices)
print('Column indices:\n', col_indices)
print('Selected elements using np.ix_:\n', selected_elements)

Output:

Original 2D array:
 [[72 26 99 42 96]
 [81 71 47 32 10]
 [19 91 70 19 60]
 [12 15 94 30 31]
 [65 87 10 20 98]]
Row indices:
 [1 3]
Column indices:
 [0 2 4]
Selected elements using np.ix_:
 [[81 47 10]
 [12 94 31]]

Explanation:

  • Import Libraries:
    • Imported numpy as "np" for array creation and manipulation.
  • Create 2D NumPy Array:
    • Create a 2D NumPy array named array_2d with random integers ranging from 0 to 99 and a shape of (5, 5).
  • Create 1D NumPy Arrays:
    • Created two 1D NumPy arrays named row_indices and col_indices to specify the rows and columns for cross-indexing.
  • Use np.ix_ for Cross-Indexing:
    • Used np.ix_ to create an open mesh from the row and column indices. This creates a grid that can be used for cross-indexing.
  • Select Elements Using Index Grid:
    • Use the index grid created by np.ix_ to select elements from the 2D array.
  • Print Results:
    • Print the original 2D array, the row and column indices, and the selected elements to verify the indexing operation.

Python-Numpy Code Editor: