Skip to content
On this page

Numpy Exercises 1-10

1. Import numpy as np and see the version

import numpy as np
np.__version__

'1.21.5'

2. How to create a 1D array?

(With numbers 0-9)

np.arange(0, 10)

See np.arange documentation!

If you need non-integer steps use np.linspace instead!

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

3. How to create a boolean array?

np.full((3,3), True)

See Numpy Creation Routines

array([[ True, True, True], [ True, True, True], [ True, True, True]])

4. How to extract items that satisfy a given condition from 1D array?

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[arr % 2 == 1]

Pretty cool, Numpy broadcasts operations to every element. arr % 2 == 1 returns the mask we need to extract the odds.

Helpful discussion on filtering here

6. How to replace items that satisfy a condition without affecting the original array?

np.where(arr % 2 == 1, -1, arr)

If you said just do a list comprehension... Me too. np.where has some damned useful features though! It's definitely visually cleaner too.

See the np.where documentation. It has a list comprehension equivalent too, which is pretty cool!

7. How to reshape an array?

Convert a 1D array to a 2D array.

np.reshape(arr, (2, -1))

Using -1 as the second dimension lets numpy figure out how many columns there should be. Either dimension can be set to -1.

See the np.reshape documentation

8. How to stack two arrays vertically?

Given arrays a and b:

a = np.arange(10).reshape(2,-1)
b = np.repeat(1, 10).reshape(2,-1)

We stack them by using vstack:

np.vstack((a, b))

array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]])

See the np.vstack documentation.

9. How to stack two arrays horizontally?

Given the same a and b from problem 8:

np.hstack((a,b))

array([[0, 1, 2, 3, 4, 1, 1, 1, 1, 1], [5, 6, 7, 8, 9, 1, 1, 1, 1, 1]])

See the np.hstack documentation

10. How to generate custom sequences in numpy without hardcoding?

Given a: a = np.array([1,2,3])

Make: #> array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])

np.hstack((np.repeat(a, 3), np.tile(a, 3)))

Repeat repeats the elements of an array a given number of times. Tile repeats the array a given number of times.

See the np.repeat documentation and the np.tile documentation!

Tags

Last updated on 3/29/2022