My first brush with NumPy happened over writing a block of code to make a plot using** pylab**. ⇣

`pylab`

is part of`matplotlib`

(in`matplotlib.pylab`

) and tries to give you a MatLab like environment.`matplotlib`

has a number of dependencies, among them`numpy`

which it imports under the common alias`np`

.`scipy`

is not a dependency of`matplotlib`

.

I had a *tuple* (of lows and highs of temperature) of lengh 2 with 31 entries in each (the number of days in the month of July), parsed from this text file:

Given below, are 2 sets of code that do the same thing; one ** without NumPy** and the other

**. They output the following graph using**

*with*NumPy**PyLab**:

**Code without NumPy**

**Code with NumPy**

The difference in code lies in how the variable `diffTemps`

is calculated.

diffTemps = list(np.array(highTemps) - np.array(lowTemps))

seems more readable than

diffTemps = [highTemps[i] - lowTemps[i] for i in range(len(lowTemps))]

**Notice how straight forward it is with NumPy.** At the core of the NumPy package, is the *ndarray* object. This encapsulates n-dimensional arrays of homogeneous data types, with many operations being performed in compiled code for performance. element-by-element operations are the “default mode” when an *ndarray* is involved, but the element-by-element operation is speedily executed by pre-compiled C code.