We also can slice elements, and we'll see that in just a minute.

But that same notation can be used with the arange method,

that will create a array of data following the specific pattern.

So if we're going to start with zero and end at ten, and stride is one,

we'll go 0 1 2 3 4 5 6 7 8 9.

If we have a stride of two, such as this example shows,

you can see that we go 3 5 7 and 9.

Just like before, we don't actually include the end parameter.

There's also elements or methods that will create arrays whose

elements are linearly spaced so this is very useful for plotting.

If you want to sample data at a specific set of points.

So for instance I need a 100 sample points between 0 and 1, this would do that.

You may want the logarithmically spaced because of the way your

analytics is operating and so you can do the same thing.

But now it's with log space method and

that logarithmically spaces them uniformly.

And this code here just demonstrates that.

Arrays have attributes that provide information about them such as how

many dimensions.

So if you have a one-dimension this value will be 1.

Shape gives you the shape of the array.

So if you have a matrix that holds n rows and m columns it would have shape n,m.

Size is the total numbers of the arrays which is just the product of n times m.

Dtype, is the data type, so is it an integer?

Is it float?

And NumPy will actually allow you to specify that when you create an array,

so that you can say,

look I know my numbers are very small, say they're between 0 and 255.

So I want an unsigned integer and

that will minimize the memory impact of your array.

These can be very important when you start working with very large data and

you want to try to make sure it's fitting within your computer's memory.