Do you need to create a function that returns a NumPy array but you don’t know how? No worries, in sixty seconds, you’ll know! Go! π
A Python function can return any object such as a NumPy Array. To return an array, first create the array object within the function body, assign it to a variable arr
, and return it to the caller of the function using the keyword operation “return arr
“.
π Recommended Tutorial: How to Initialize a NumPy Array? 6 Easy Ways
Create and Return 1D Array
For example, the following code creates a function create_array()
of numbers 0, 1, 2, …, 9 using the np.arange()
function and returns the array to the caller of the function:
import numpy as np def create_array(): ''' Function to return array ''' return np.arange(10) numbers = create_array() print(numbers) # [0 1 2 3 4 5 6 7 8 9]
The np.arange([start,] stop[, step])
function creates a new NumPy array with evenly-spaced integers between start
(inclusive) and stop
(exclusive).
The step
size defines the difference between subsequent values. For example, np.arange(1, 6, 2)
creates the NumPy array [1, 3, 5]
.
To better understand the function, have a look at this video:
I also created this figure to demonstrate how NumPy’s arange()
function works on three examples:
In the code example, we used np.arange(10)
with default start=0
and step=1
only specifying the stop=10
argument.
If you need an even deeper understanding, I’d recommend you check out our full guide on the Finxter blog.
π Recommended Tutorial: NumPy Arange Function — A Helpful Illustrated Guide
Create and Return 2D NumPy Array
You can also create a 2D (or multi-dimensional) array in a Python function by first creating a 2D or (xD) nested list and converting the nested list to a NumPy array by passing it into the np.array()
function.
The following code snippet uses nested list comprehension to create a 2D NumPy array following a more complicated creation pattern:
import numpy as np def create_array(a,b): ''' Function to return array ''' lst = [[(i+j)**2 for i in range(a)] for j in range(b)] return np.array(lst) arr = create_array(4,3) print(arr)
Output:
[[ 0 1 4 9] [ 1 4 9 16] [ 4 9 16 25]]
I definitely recommend reading the following tutorial to understand nested list comprehension in Python:
π Recommended Tutorial: Nested List Comprehension in Python
More Ways
There are many other ways to return an array in Python.
For example, you can use either of those methods inside the function body to create and initialize a NumPy array:
- Method 1: Use
np.array()
- Method 2: Use
np.zeros()
- Method 3: Use
np.ones()
- Method 4: Use
np.full()
- Method 5: Use
np.empty()
- Method 6: Use
np.arange()
- Bonus: Initialize a NumPy array with CSV data
To get a quick overview what to put into the function and how these methods work, I’d recommend you check out our full tutorial.
π Recommended Tutorial: How to Initialize a NumPy Array? 6 Easy Ways
Related Tutorials
Programmer Humor
Q: How do you tell an introverted computer scientist from an extroverted computer scientist?
A: An extroverted computer scientist looks at your shoes when he talks to you.