Other Functions
00:00
In this video, I’m going to cover some other functions in the NumPy module which are a lot like arange()
in that they return arrays or grids of values—numeric values—but are different in the criteria that they use to build these arrays or grids.
00:16
Let’s move over into the terminal, and as always, import numpy as np
. And the reason I’m making sure to include this every time is just that I often forget it and so I want to make sure that you don’t.
00:28
I’m going to show one example of arange()
in all of its glory with all of the arguments included just to make sure that everyone’s on the same page. So, starting at 1
, going up to but not including 100
, with a step
of 1
.
00:47
And then I’m going to say that the dtype
(data type) is just going to be an int32
, just this time for fun. So there it is! It generates a numpy.ndarray
going from 1
up to 99
because we’re not including 100
, with a step of 1
and using int32
as the kind of data.
01:04
The first alternate routine that I’m going to use is linspace()
, which is really, really useful. It’s very similar to arange()
except that what you can do instead of doing a step
is that you can specify a start
and a stop
, but you can specify the number of values that you want.
01:23
Let’s do something interesting, like 33
,
01:27
and what this will do is give you 33 evenly spaced values between 1
and 100
. You’ll notice that linspace()
by default includes 100
, which is different than arange()
, which does not include the stop
value.
01:40
But you can specify, you can say endpoint=False
if you don’t want to include that value. And you’ll notice that including or not including the endpoint really changes the nature of the array when you’re using this num
parameter instead of specifying a step
.
01:56
So, that’s linspace()
, and it’s pretty cool. It works really well, and it’s a really useful thing when you’re doing data analysis because sometimes what’s more important is that you have ten or a hundred or a thousand values on an axis—that’s more important than the exact distance between them, right?
02:15 And so you might want to standardize the number of values on an axis.
02:20
Another thing very similar to that is the logspace()
, except the logspace()
—I’m just going to duplicate the parameters above—
02:31
does all of the same things, except it just takes the log of the linspace()
. So this is useful when you want to plot data on a logarithmic scale.
02:39
And there is a very similar function, which I’m going to slowly make my way back to, called geomspace()
, which uses a geometric function and does essentially the same thing there.
02:51
I won’t get too much into the details of exactly what it uses there—you’re going to have to get into the documentation of NumPy a little bit on your own there. And then if you want grids of data—so you want, for example, np.array()
.
03:08 Say you want all of the—
03:14
I’m sorry, I didn’t give it a full list. You need to actually give numpy.array()
a list instead of several arguments. So, say you want to get a grid of all of the values on a graph that have any combination of these x
and y
values. So you might want 1, 1
then you might want 2, 3
—or, sorry, I’ll just go in order—1, 2
, then 1, 3
, and so on, right? Then you want 2, 1
; 2, 2
; 2, 3
; 2, 4
; and so on.
03:45
So what you can do for that is you can say np.meshgrid()
of x
and y
. And what that does is that it gives you two parameters back, and these parameters are the x
and the y
values for all of those combinations.
04:03
So if you match this up—x
1
, y
1
; x
2
, y
1
; x
3
, y
1
; x
4
; y
1
.
04:12
Or—yeah, exactly. So you see what I’m doing here. x
1
, y
is 2
; x
2
, y
2
; and so on.
04:17
So then, if you were to plug this into a plotting thing, so say you had some kind of plot()
function, you can use PyPlot or Matplotlib, or something like that—you can plot np.meshgrid()
directly.
04:32
And things are getting a little more hand-wavy here because this is not a tutorial course on how to use Matplotlib or PyPlot, so I don’t want to get too much into it, but if you need grids of evenly spaced values, then you can use meshgrid()
and there are also functions called ogrid()
and mgrid()
, which have slight variations on that. But again, it’s very similar to the arange()
function, but they have different purposes and are useful for different things.
04:58
I hope you found this video useful, and I’d encourage you to read up a little bit on things like np.meshgrid()
, and then plotting and data analysis, because that’s where a lot of these functions are actually used.
Become a Member to join the conversation.