**Heads up!** To view this whole video, sign in with your Courses account or enroll in your free 7-day trial.
Sign In
Enroll

Preview

Start a free Courses trial

to watch this video

NumPy integrates with a whole slew of external packages and tools. Let's take a look at the plotting library, matplotlib

#### Learn More

#### My Notes for Routines in Action

```
## Common Routines
* Common [mathematical](https://docs.scipy.org/doc/numpy-1.14.0/reference/routines.math.html) [routines](https://docs.scipy.org/doc/numpy-1.14.0/reference/routines.html) are exposed so the formula can be abstracted away.
* [`mean`](https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.mean.html#numpy.mean) is a [statistics](https://docs.scipy.org/doc/numpy-1.14.0/reference/routines.statistics.html) routine used to calculate the average.
* Reduction functions take a dimension and collapse it into a single value.
* These functions define an axis parameter, and you should remember that the function works across the dimension.
```

Just about every Python data library that
you come across is going to accept and
0:00

produce NumPy arrays.
0:04

Let's take a look at a common use case,
plotting our data graphically.
0:06

Let's go and get Matplotlib installed.
0:10

So here are my reflection notes, but
before we review them, let's multitask.
0:13

We need to install Matplotlib, so
let's flip over to our terminal.
0:17

And we will stop the server with Ctrl
+ C and do I wanna shut this down?
0:23

I'm gonna click yes to shut it down.
0:27

If we go back at the prompt and
we're gonna type conda install matplotlib.
0:30

And as that starts happening,
we are just gonna go and
0:36

flip over back to our notebook,
I'm gonna say OK, it's still up.
0:39

So it says connecting the kernel,
that's fine cause the server is down.
0:43

So let's take a look at this.
0:47

So some common mathematical
routines are exposed so
0:48

the formula could be abstracted away.
0:51

That was awesome.
0:54

So we saw mean was like that.
0:55

STD or standard deviation was like that.
0:56

A note here of reduction functions
take a dimension and it will collapse.
0:59

It will reduce across
that into a single value.
1:03

And that axis parameter is one
that's a little bit tricky.
1:05

Good thing we made note of
that with some examples.
1:08

Awesome, and
it works across the dimension.
1:11

So that's the common routines.
1:13

And I did another one,
1:15

another little section here
about the universal functions.
1:16

So here we go.
1:20

Universal functions expose a function
to reduce an array to a single value.
1:21

And there's also a function
called accumulate, which is nice,
1:25

cuz you can see things as it accumulates.
1:28

Let's see how we're doing with our server.
1:31

Shoot.
1:36

Yes, we want that to install.
1:37

I was trying to be a little too fast.
1:39

All right, cool.
1:40

Here, we're good.
1:41

So, let's go ahead and let's start that
notebook back up, jupyter notebook.
1:42

And we should be able to just do it
over here, if we come back here and
1:49

we say Kernel > Restart & Run All.
1:54

Here we go, back to it.
1:58

If you haven't used matplotlib lib before,
it's a wonderful, versatile, and
2:02

quite popular graphing library.
2:07

There is more in the teachers notes
if you would like to learn more.
2:09

So I'm gonna come up here into my import
and I am going to add matplotlib.
2:11

So I will say import matplotlib.pyplot.
2:17

And keeping things lazy it's
called PLT typically as plt.
2:23

Awesome, so what can we do with that?
2:30

Well, what do you say we create a graph
that shows the student's GPA's matrix?
2:34

So let's get down to where that was at,
here we go.
2:40

Let's get rid of a couple of these.
2:43

[SOUND] And I'm going to come here.
2:45

We should probably convey the way that
each student performed over the year.
2:48

Now, choosing which type of graph
to get your point across the best
2:55

is an art form in and of itself.
2:59

Now, one effective way that
I've seen this expressed
3:01

is by using what is known as a box plot.
3:05

So, what a box plot does, is that it shows
the range, the maximum and the minimum and
3:08

the various quartiles and
the mean, all in one graph.
3:12

Well, the the best way to explore
anything is to just to explore it.
3:16

Let's do it.
3:19

Off of the py plot module, there is
a function named box plot, plt.boxplot().
3:21

And it takes an array, so
let's give it our array, so
3:29

let's say students_gpas, and
then I'm gonna go ahead and do plt.plot().
3:32

That will actually draw it here for
us in our notebook.
3:38

Check this out.
3:41

[SOUND] students_gpas is not defined.
3:48

I wonder if that's because I ran the line.
3:53

Let's try that one more time.
3:56

Restart & Run All.
3:57

It looked like it worked.
4:03

Sorry about that.
4:07

Drops us down at the bottom too, so
we've got to get back up to where we were.
4:10

There we go, there's our graph.
4:15

Look at that.
4:17

It looks like we're doing the right math,
but it's along the years, right.
4:18

So this is 1, 2, 3, 4 if you remember
what our, or students GPA's look like.
4:22

Fourth was all 4, and these was 4,
3.2, 3.96, let's just make sure, yeah,
4:28

that's what's happening here.
4:32

So, it's along the years
instead of along the students.
4:34

This is also a perfectly fine
way of looking at things, but
4:38

it's not what we're after.
4:41

So this bottom whisker here is the minimum
and the top whisker is the maximum.
4:43

Here's the interquartile and
this is the median here.
4:48

It's a bummer that the box plot
is graphing along the columns.
4:52

Wasn't there a way to switch
the axis of the array?
4:57

Like you can go from a 4 to 3 to a 3 to 4?
5:01

I'm pretty sure it was on that array
manipulation doc that we linked to in our
5:04

notes.
5:09

If you don't remember how to do this,
why don't you go and find that?
5:10

Give me a pause and see if you can't
find it in the documentation and
5:14

get this graph showing what we want.
5:17

Go ahead, pause me.
5:19

Did you find it?
5:22

It's transposed.
5:23

So .T right?
5:24

On all arrays it will actually transpose
and it will switch the order of arrays.
5:27

So lets run that one more time.
5:30

Beautiful, here we go.
5:32

So we got the three students, this is me.
5:33

I was all over the place.
5:36

Quesy doing good, like we said.
5:37

And here's Vlada doing well as well.
5:40

Got so much better from the start.
5:43

So what do you think we could do with
our 100 days of code study minutes?
5:45

I know one of the questions
that I get often is
5:50

how much time do you
actually spend doing it?
5:52

Because sometimes it's hard to
stop once you get on a roll.
5:55

[LAUGH] I'm definitely one to overdo it.
5:57

So let's go down to our study a minute,
so I'm gonna scroll down here.
6:00

Right about here.
6:05

One way to tackle this is
to group your data, right?
6:07

Now there's a type of
graph known as histogram
6:10

that will group your data into bins or
buckets and then display it.
6:13

It's pretty perfect for
what we need actually.
6:18

So remember that we dropped
the values that were under 60,
6:21

so we really just want values
that are greater than 0.
6:24

So the name of the function is hist,
short for
6:28

histogram, not like what a cat does
when you try to be nice to it.
6:33

So we're gonna put it here,
all of the minutes
6:37

that are greater than 0.
6:44

Actually, why don't you do that?
6:46

So I'm gonna leave a little to do here for
6:49

you, so we're gonna say pass in
6:55

a one dimensional array of all
7:00

the minutes that are greater than zero.
7:05

So you got that, right.
7:11

You can do that.
7:12

Go ahead.
Enter this hist function,
7:13

pass in a one dimensional array of all
the minutes that are greater than zero.
7:15

Go ahead pause me.
7:17

You got this.
7:19

How'd you do?
7:21

Did you get it?
7:21

So we can index our study_minutes
array with a Boolean array, right?
7:23

And we're gonna use broadcasting here,
7:30

cuz we're gonna broadcast this 0
using this comparison operator and
7:33

that will give us a one dimensional array
of all the values, and so we can say plot.
7:37

Bam, look at that.
7:45

There's some buckets that got
defined by our data, so 25ish,
7:48

maybe 26, 27 times,
we were in the 1st range of 60 or so.
7:52

And you could tweak this
actually a little bit more, but
7:58

I think that this gets
the point across pretty well.
8:00

There's times where I was down
here in the three-hour range.
8:02

But mostly, it was up here.
8:06

[LAUGH] And then there was even one
where we kind of crazy down here.
8:07

I hope that you are starting to see and
8:10

feel comfortable navigating around
the wonderful world of NumPy.
8:13

You'll see it everywhere.
8:17

Like everywhere.
8:19

And being able to use it and
8:20

understand the terminology surround it
will greatly help your data journey.
8:21

Matplotlib is just one of hundreds
of data related libraries
8:26

that work great with NumPy.
8:30

I am excited to see what you do with it.
8:32

You need to sign up for Treehouse in order to download course files.

Sign up