## Problem Formulation and Solution Overview

*To make it more interesting, these examples will generate an array of ten (10) random integers using the random.randint() function from the NumPy library and return the minimum and maximum values of the same. *

## Preparation

import numpy as np from numpy import random

## Method 1: Use min() and max()

This example uses NumPy’s `min()`

and `max()`

functions to retrieve an array’s minimum and maximum values from a 1D NumPy Array.

rand_nums = random.randint(100, size=(10)) min_num = np.min(rand_nums) max_num = np.max(rand_nums) print(min_num, max_num)

The first line in this code generates ten (10) random integers by calling the `random.randint()`

function and passing this two (2) arguments: the range to generate from (0-100) and the total number to return (`size=10`

).

The results save to `rand_nums`

. If output to the terminal, a random array similar to the one below would display.

`[49 10 64 86 91 43 42 88 94 10]` |

The following two (2) lines extract the minimum and maximum values by calling the `min()`

and `max()`

functions respectively and passing `rand_nums`

as an argument to each. The results are output to the terminal.

`10 94` |

## Method 2: Use amin() and amax()

This example uses NumPy’s `amin()`

and `amax()`

functions to retrieve an array’s minimum and maximum values from a 1D NumPy Array.

rand_nums = random.randint(100, size=(10)) min_num = np.amin(rand_nums) max_num = np.amax(rand_nums) print(min_num, max_num)

The first line in this code generates ten (10) random integers by calling the `random.randint()`

function and passing this two (2) arguments: the range to generate from (0-100) and the total number to return (`size=10`

).

The results save to `rand_nums`

. If output to the terminal, a random array similar to the one below would display.

`[47 87 8 70 94 13 7 69 92 42]` |

The following two (2) lines extract the minimum and maximum values by calling the `min()`

and `max()`

functions, respectively and passing `rand_nums`

as an argument to each. The results are output to the terminal.

`7 94` |

## Method 3: Use sort()

This example uses NumPy’s `sort()`

function to retrieve an array’s minimum and maximum values from a 1D NumPy Array.

rand_nums = random.randint(100, size=(10)) sorted_nums = np.sort(rand_nums) min_num = sorted_nums[0] max_num = sorted_nums[len(sorted_nums)-1] print(min_num, max_num)

The first line in this code generates ten (10) random integers by calling the `random.randint()`

function and passing these two (2) arguments: the range to generate from (0-100) and the total number to return (`size=10`

).

The results save to `rand_nums`

. If output to the terminal, a random array similar to the one below would display.

`[49 61 4 60 44 49 17 0 11 3]` |

The following line sorts the array from smallest to largest. The results save to `sorted_num`

. If output to the terminal, the sorted array displays.

`[ 0 3 4 11 17 44 49 49 60 61]` |

Then, the minimum and maximum values are extracted using slicing and saved to `min_num`

and `max_num`

, respectively and output to the terminal.

`0 61` |

## Method 4: Use minimum() and maximum()

This example uses NumPy’s `minimum()`

and `maximum()`

functions to retrieve an array’s minimum and maximum values from a 1D NumPy Array.

rand_nums = random.randint(20, size=(5)) min_nums = np.minimum(rand_nums, [5,6,7,8,9]) max_nums = np.maximum(rand_nums, [5,6,7,8,9])

The first line in this code generates twenty (20) random integers by calling the `random.randint()`

function and passing these two (2) arguments: the range to generate from (0-20) and the total number to return (`size=5`

).

`rand_nums`

. If output to the terminal, a random array similar to the one below would display.

`[` |

The following line calls the `minimum()`

function and passes it two (2) arguments, `rand_num`

, and a second array (`[5,6,7,8,9]`

). This array is the same length as `rand_num`

and is used to compare each element in both arrays and output the lowest value for each in a array format.

`[5 6 2 8 8]` |

If you compare the first element in each array, 11, and 5, 5 is the lowest (minimum) number and is appended to the result. If you then compare 13 and 6, 6 is appended to the result, and so on.

`[` |

The `maximum()`

function works exactly the same as above, except it returns the maximum value as shown below.

`[11 13 7 12 9]` |

## Bonus: Use min() and max()

This example uses NumPy’s `min()`

and `max()`

functions to read in a CSV file into a Pandas DataFrame and retrieve the minimum and maximum values of the `Solved`

column.

The `pandas`

library must be installed to successfully run this code. In addition, the finxter.csv must reside in the current working directory.

import pandas as pd import numpy as np df = pd.read_csv('finxter.csv') min_num = np.min(df['Solved']) max_num = np.max(df['Solved']) print(min_num, max_num)

The output from the above displays below.

`15 2807` |

## Summary

This article has provided five (5) ways to find the minimum and maximum values in a NumPy array to select the best fit for your coding requirements.

Good Luck & Happy Coding!

## Programming Humor – Python

At university, I found my love of writing and coding. Both of which I was able to use in my career.

During the past 15 years, I have held a number of positions such as:

In-house Corporate Technical Writer for various software programs such as Navision and Microsoft CRM

Corporate Trainer (staff of 30+)

Programming Instructor

Implementation Specialist for Navision and Microsoft CRM

Senior PHP Coder