100 numpy exercises

This is a collection of exercises that have been collected in the numpy mailing list, on stack overflow and in the numpy documentation. I’ve also created some to reach the 100 limit. The goal of this collection is to offer a quick reference for both old and new users but also to provide a set of exercises for those who teach.

If you find an error or think you’ve a better way to solve some of them, feel free to open an issue at https://github.com/rougier/numpy-100

17. What is the result of the following expression? (★☆☆)

``````0 * np.nan
np.nan == np.nan
np.inf > np.nan
np.nan - np.nan
np.nan in set([np.nan])
0.3 == 3 * 0.1
``````

26. What is the output of the following script? (★☆☆)

``````# Author: Jake VanderPlas

print(sum(range(5),-1))
from numpy import *
print(sum(range(5),-1))
``````
``````Z**Z
2 << Z >> 2
Z <- Z
1j*Z
Z/1/1
Z<Z>Z
``````

28. What are the result of the following expressions?

``````np.array(0) / np.array(0)
np.array(0) // np.array(0)
np.array([np.nan]).astype(int).astype(float)
``````

32. Is the following expressions true? (★☆☆)

``````np.sqrt(-1) == np.emath.sqrt(-1)
``````

54. How to read the following file? (★★☆)

``````1, 2, 3, 4, 5
6,  ,  , 7, 8
,  , 9,10,11
``````