DEV Community

Cover image for NumPy Basics : Part 1
Bernice Waweru
Bernice Waweru

Posted on • Edited on

NumPy Basics : Part 1

This post aims to cover the basics of Numpy. Let's do this.

Table of Contents

  1. Introduction
  2. Creating Numpy Arrays
  3. Attributes
  4. Indexing

Introduction

NumPy refers to Numerical Python which is a Python library used in array manipulation.

To use the NumPy library import it as:

import numpy as np

np is the conventional alias for NumPy.

The main object of Numpy is the ndarray (N-dimensional array) object which is more efficient and faster that Python lists.

The ndarray is a multidimensional array of homogeneous data; all elements in the array have the same data type.

Creating a Numpy array

Use the ndarray class to create ndarray objects and access their attributes and methods.

Using the numpy.array() function

import numpy as np
a = np.array([1, 2, 3])
Enter fullscreen mode Exit fullscreen mode

You can also create an array with zeros only or ones only.

#array filled with zeros; creates array with 5 zeros 
array_zeros = np.zeros(5)

#array filled with ones; creates array with 4 ones
array_ones = np.ones(4)
Enter fullscreen mode Exit fullscreen mode

You can also create an empty array which can be filled later.

# Create an empty array with 3 elements
arrEmpty = np.empty(3)
Enter fullscreen mode Exit fullscreen mode

You can also create an array using numpy.arange()

# output is a range from 0 to the specified number but not #including that number.([0, 1, 2, 3,4])

array_range = np.arange(5)
# output > array([0, 1, 2, 3,4])
Enter fullscreen mode Exit fullscreen mode

You can also specify the first number, last number, and the step size in the range.

np.arange(1, 9, 2)
# output > array([1, 3, 5, 7]
Enter fullscreen mode Exit fullscreen mode

Attributes

Let's use this example to understand ndarray attributes.

array_A = np.array([[2,4,6], [1,3,5]])

Enter fullscreen mode Exit fullscreen mode

1. ndarray.ndim: The number of dimensions (axes) of the array.
The ndim for array_A is 2.

2. ndarray.dtype: The data type of the elements in the array. The dtype in our example is int64.
You can specify the dtype when creating an array using the dtype keyword.

# array of ones.
a = np.ones(3, dtype=np.int64)
Enter fullscreen mode Exit fullscreen mode

3. ndarray.shape: The number of elements along with each axis.
The shape is a tuple of N-positive integers that specifies the number of elements of each dimension.
For our example the shape is (2,3) because the array has two rows and three columns.
Ps: The length of the shape tuple is the number of dimensions, ndim.

4. ndarray.size: The total number of elements in the array.
It is equal to the product of the elements of shape.
The size of our example array is 6. i.e 2 x 3

Indexing

Indexing in Numpy works similarly to indexing in python lists.

For a one dimensional array, values can be accessed by specifying the desired index in square brackets counting from 0.
syntax: array_x[start:stop:step]

import numpy as np
array_x = np.array([5,6,7,8,9])
array_x
Enter fullscreen mode Exit fullscreen mode

Output:
array([5, 6, 7, 8, 9])

Item at index 0

array_x[0]
Enter fullscreen mode Exit fullscreen mode

Output: 5

Items from index 0 to 3 but not including 3.

array_x[:3]
Enter fullscreen mode Exit fullscreen mode

Output: array([5, 6, 7])

Items from index 3 to the last element.

array_x[3:]
Enter fullscreen mode Exit fullscreen mode

Output: array([8, 9])

Items in the array taking a step size of 2

array_x[0:-1:2]
Enter fullscreen mode Exit fullscreen mode

Output: array([5, 7])

In a multi-dimensional array, values can be accessed using a comma-separated tuple of indices.
The first value specifies the row while the second specifies the column.

import numpy as np
array_A = np.array([[2,4,6], [1,3,5]])
array_A[0,0]
Enter fullscreen mode Exit fullscreen mode

2

array_A[1, 1]
Enter fullscreen mode Exit fullscreen mode

Output: 3

You can also use indexing to change the value at a given index.

array_A[1, 1]=7
array_A
Enter fullscreen mode Exit fullscreen mode

Output:

[[2, 4, 6],
 [1, 7, 5]])
Enter fullscreen mode Exit fullscreen mode

Advantages of using Numpy Arrays.

  1. Numpy data structures take up less memory.
  2. Numpy arrays are faster than lists.
  3. NumPy arrays have homogeneous data types and allow for mathematical manipulation.

Top comments (0)