How to Get the Length of a 2D NumPy Array

Problem Formulation and Solution Overview

This article will show you how to get the length of a 2D Array in Python.

These examples will generate a 2D array with two (2) arrays of five (5) random integers and return the array’s length to make it more interesting.


πŸ’¬ Question: How would we write code to get the length of a 2D Array?

We can accomplish this task by one of the following options:


Method 1: Use List Comprehension

This example uses List Comprehension and sum() to determine the length of a 2D array. This method works well if the arrays do not contain the same number of elements.

import random

two_dims = [random.sample(range(10, 50), 3), random.sample(range(50, 100), 7)]
tot_len = sum(len(el) for el in two_dims)
print(tot_len)

The first line of the above code imports the random library. This allows access to random.sample() to generate a sampling of random integers.

The following line creates a 2D array containing randomly generated integers using random.sample(). This function is then passed two (2) arguments:

  • The range() function with a start position (inclusive) and a stop position (exclusive, stop-1).
  • The number of random integers to generate, 3 and 7, respectively.

This is called twice, and the results save to two_dims.

A 2D array like the one below would display if output to the terminal at this point. This 2D array contains one array of three (3) elements and another with seven (7) elements.

[[47, 46, 45], [56, 74, 97, 67, 72, 68, 92]]

On the following line, List Comprehension and sum() are used to loop through and count each element of the 2D array. The total number of elements in the 2D array is saved to tot_len and output to the terminal.

10

Method 2: Use len()

This example uses len() to determine the length of a 2D array. This method works only if each array contains the same number of elements.

import random

two_dims = [random.sample(range(10, 50), 5), random.sample(range(50, 100), 5)]
tot_length = (len(two_dims[0]) * len(two_dims))
print(tot_length)

The first line of the above code imports the random library. This allows us to generate a random sampling of integers.

The following line creates a 2D array containing randomly generated integers using random.sample(). This function is passed two (2) arguments:

  • The range() function with a start position (inclusive) and a stop position (exclusive, stop-1).
  • The number of random integers to generate, five (5) for each array.

This is called twice, and the results save to two_dims.

A 2D array like the one below would display if output to the terminal at this point. This 2D array contains two (2) arrays of five (5) elements each.

[[25, 37, 21, 13, 34], [75, 77, 52, 55, 97]]

The next line determines the length of the first array (5). This value is multiplied by the number of dimensions (2). The results save to tot_length and output to the terminal.

10

Method 3: Use shape()

This example uses the shape() function from the NumPy library to determine the length of a 2D array. This method returns a tuple.

To run the code below error-free, the NumPy library must be installed. Click here for installation instructions.

import numpy as np 

two_dims = np.array(np.random.randint(low=10, high=100, size=(2, 5)))
tot_tuple = np.shape(two_dims)
print(tot_tuple[0] * tot_tuple[1])

The first line in the above code imports the NumPy library. This allows access to the array() and random.randint() functions.

The following line calls the array() function. This function is then passed the random.randint() function. This function is passed three (3) arguments:

  • A low position (inclusive).
  • A high position (exclusive).
  • A size which is a Tuple containing the number of arrays to generate, and the size of these arrays, resulting in (2, 5)

The results save to two_dims.

A 2D array like the one below would display if output to the terminal at this point. This 2D array contains two (2) arrays of five (5) elements.

[[38 18 32 76 41]
[73 88 60 21 30]]

The next line calls shape() and passes the 2D array, two_dims, as an argument. The results save to tot_tuple (a Tuple) and are output to the terminal.

(2, 5)

To retrieve the length, we multiply the Tuple (2*5) and output the results to the terminal.

10

Method 4: Use NumPy size

This example uses size from the NumPy library to determine the length of a 2D array.

To run the code below error-free, the NumPy library must be installed. Click here for installation instructions.

import numpy as np 

two_dims = np.array(np.random.randint(low=10, high=100, size=(2, 6)))
tot_length = two_dims.size
print(tot_length)

The first line in the above code imports the NumPy library. This allows access to the array(), random.randint(), and size functions.

The following line calls the array() function. This function is then passed the random.randint() function. This function is passed three (3) arguments:

  • A low position (inclusive).
  • A high position (exclusive).
  • A size which is a Tuple containing the number of arrays to generate, and the size of these arrays, resulting in (2, 6)

The results save to two_dims.

A 2D array like the one below would display if output to the terminal at this point. This 2D array contains two (2) arrays of five (6) elements.

[[66 85 90 36 78 80]
[80 80 11 32 91 58]]

The next line calculates the length of the 2D array using size. The results save to tot_length and output to the terminal.

12

πŸ’‘Note: The size function returns the number of elements along a given axis.


Method 5: Use len() and zip()

This example uses the len() and zip() functions to determine the length of a 2D array.

To run the code below error-free, the NumPy library must be installed. Click here for installation instructions.

import numpy as np 

two_dims = np.array(np.random.randint(low=10, high=100, size=(2, 6)))
tot_dims = (len(two_dims) * len(list(zip(*two_dims))))
print(tot_dims)

The first line in the above code imports the NumPy library. This allows access to the array() and random.randint() functions.

As outlined in Method 4 above, the following line generates a 2D array each containing six (6) randomly generated integers. These results save to two_dims.

A 2D array like the one below would display if output to the terminal at this point. This 2D array contains two (2) arrays of five (6) elements.

[[23 71 39 39 36 14]
[59 92 87 72 13 76]]

The following line calculates:

  • The number of dimensions by calling the len() function and passing it two_dims created above (len(two_dims)). The result is 2.
  • Then, zip() and list are used to calculate the length of each array (len(list(zip(*two_dims)))). The result is 6.

The results from both are multiplied and saved to tot_dims. This is then output to the terminal.

12

Summary

This article has provided five (5) ways to get the length of a 2D Array to select the best fit for your coding requirements.

Good Luck & Happy Coding!


Programmer Humor – Blockchain

“Blockchains are like grappling hooks, in that it’s extremely cool when you encounter a problem for which they’re the right solution, but it happens way too rarely in real life.” source xkcd