Arrays are the main data structure used in machine learning.
In Python, arrays from the NumPy library, called Ndimensional arrays or the ndarray, are used as the primary data structure for representing data.
In this tutorial, you will discover the Ndimensional array in NumPy for representing numerical and manipulating data in Python.
After completing this tutorial, you will know:
 What the ndarray is and how to create and inspect an array in Python.
 Key functions for creating new empty arrays and arrays with default values.
 How to combine existing arrays to create new arrays.
Let’s get started.
Tutorial Overview
This tutorial is divided into 3 parts; they are:
 NumPy Ndimensional Array
 Functions to Create Arrays
 Combining Arrays
Need help with Linear Algebra for Machine Learning?
Take my free 7day email crash course now (with sample code).
Click to signup and also get a free PDF Ebook version of the course.
Download Your FREE MiniCourse
NumPy Ndimensional Array
NumPy is a Python library that can be used for scientific and numerical applications and is the tool to use for linear algebra operations.
The main data structure in NumPy is the ndarray, which is a shorthand name for Ndimensional array. When working with NumPy, data in an ndarray is simply referred to as an array.
It is a fixedsized array in memory that contains data of the same type, such as integers or floating point values.
The data type supported by an array can be accessed via the “dtype” attribute on the array. The dimensions of an array can be accessed via the “shape” attribute that returns a tuple describing the length of each dimension. There are a host of other attributes. Learn more here:
A simple way to create an array from data or simple Python data structures like a list is to use the array() function.
The example below creates a Python list of 3 floating point values, then creates an ndarray from the list and access the arrays’ shape and data type.

# create array from numpy import array l = [1.0, 2.0, 3.0] a = array(l) print(a) print(a.shape) print(a.dtype) 
Running the example prints the contents of the ndarray, the shape, which is a onedimensional array with 3 elements, and the data type, which is a 64bit floating point.
Functions to Create Arrays
There are more convenience functions for creating fixedsized arrays that you may encounter or be required to use.
Let’s look at just a few. You can see the full list here:
Empty
The empty() function will create a new array of the specified shape.
The argument to the function is an array or tuple that specifies the length of each dimension of the array to create. The values or content of the created array will be random and will need to be assigned before use.
The example below creates an empty 3×3 twodimensional array.

# create empty array from numpy import empty a = empty([3,3]) print(a) 
Running the example prints the content of the empty array. Your specific array contents will vary.

[[ 0.00000000e+000 0.00000000e+000 2.20802703e314] [ 2.20803350e314 2.20803353e314 2.20803356e314] [ 2.20803359e314 2.20803362e314 2.20803366e314]] 
Zeros
The zeros() function will create a new array of the specified size with the contents filled with zero values.
The argument to the function is an array or tuple that specifies the length of each dimension of the array to create.
The example below creates a 3×5 zero twodimensional array.

# create zero array from numpy import zeros a = zeros([3,5]) print(a) 
Running the example prints the contents of the created zero array.

[[ 0. 0. 0. 0. 0.] [ 0. 0. 0. 0. 0.] [ 0. 0. 0. 0. 0.]] 
Ones
The ones() function will create a new array of the specified size with the contents filled with one values.
The argument to the function is an array or tuple that specifies the length of each dimension of the array to create.
The example below creates a 5element onedimensional array.

# create one array from numpy import ones a = ones([5]) print(a) 
Running the example prints the contents of the created ones array.
Combining Arrays
NumPy provides many functions to create new arrays from existing arrays.
Let’s look at two of the most popular functions you may need or encounter.
Vertical Stack
Given two or more existing arrays, you can stack them vertically using the vstack() function.
For example, given two onedimensional arrays, you can create a new twodimensional array with two rows by vertically stacking them.
This is demonstrated in the example below.

# vstack from numpy import array from numpy import vstack a1 = array([1,2,3]) print(a1) a2 = array([4,5,6]) print(a2) a3 = vstack((a1, a2)) print(a3) print(a3.shape) 
Running the example first prints the two separately defined onedimensional arrays. The arrays are vertically stacked resulting in a new 2×3 array, the contents and shape of which are printed.

[1 2 3]
[4 5 6]
[[1 2 3] [4 5 6]]
(2, 3) 
Horizontal Stack
Given two or more existing arrays, you can stack them horizontally using the hstack() function.
For example, given two onedimensional arrays, you can create a new onedimensional array or one row with the columns of the first and second arrays concatenated.
This is demonstrated in the example below.

# hstack from numpy import array from numpy import hstack a1 = array([1,2,3]) print(a1) a2 = array([4,5,6]) print(a2) a3 = hstack((a1, a2)) print(a3) print(a3.shape) 
Running the example first prints the two separately defined onedimensional arrays. The arrays are then horizontally stacked resulting in a new onedimensional array with 6 elements, the contents and shape of which are printed.

[1 2 3]
[4 5 6]
[1 2 3 4 5 6]
(6,) 
Extensions
This section lists some ideas for extending the tutorial that you may wish to explore.
 Experiment with the different ways of creating arrays to your own sizes or with new data.
 Locate and develop an example for 3 additional NumPy functions for creating arrays.
 Locate and develop an example for 3 additional NumPy functions for combining arrays.
If you explore any of these extensions, I’d love to know.
Further Reading
This section provides more resources on the topic if you are looking to go deeper.
Books
References
API
Summary
In this tutorial, you discovered the Ndimensional array in NumPy for representing numerical and manipulating data in Python.
Specifically, you learned:
 What the ndarray is and how to create and inspect an array in Python.
 Key functions for creating new empty arrays and arrays with default values.
 How to combine existing arrays to create new arrays.
Do you have any questions?
Ask your questions in the comments below and I will do my best to answer.