1 Introduction
NumPy is a library of Python that makes it easy to handle vectors, matrices, or large multidimensional arrays in general. In addition to the data structures, NumPy also offers efficiently implemented functions for numerical calculations.
Loading the libraries
import numpy as np
2 Attributes of NumPy Arrays
np.random.seed(0)
x1 = np.random.randint(10, size = 6)
#One-dimensional array
x2 = np.random.randint(10, size = (3, 4))
#Two-dimensional array
x3 = np.random.randint(10, size = (3, 4, 5))
#Three-dimensional array
print("x3 ndim: ", x3.ndim)
print("x3 shape: ", x3.shape)
print("x3 size: ", x3.size)
3 Indexing of Arrays
3.1 Access to individual elements
x1
print(x1[0])
print(x1[1])
print(x1[-1])
print(x1[-2])
x2
x2[0, 0]
3.2 via Slicing
x1[:3] #first 3 elements
x1[3:] #from element 3 onwards
x1[::2] #select every second element
x1[::-1] #all elements in reverse order
3.3 Multidimensional subsets of an Array
x2
x2[:2, :3] #two rows, three columns
4 Reshape
RESHAPE = np.arange(1, 10)
RESHAPE
RESHAPE.reshape((3, 3))
5 Concatenate Arrays
x = np.array([1,2,3])
y = np.array([3,2,1])
np.concatenate([x, y])
z = [88, 99, 100]
show_con = np.concatenate([x, y, z])
show_con
6 Split Arrays
x1, x2, x3 = np.split(show_con, [3, 6])
print(x1, x2, x3)
7 UFuncs
7.1 Array-Arithmetik
x = np.array([1,2,3])
print("x - 3 =", x - 3)
print("x + 3 =", x + 3)
print("x * 2 =", x * 2)
print("x / 2 =", x / 2)
print("x ** 2 =", x ** 2)
7.2 Exponential function
x = np.array([1,2,3])
print("e^x =", np.exp(x))
print("2^x =", np.exp2(x))
print("3^x =", np.power(3, x))
7.3 Logarithm
x = np.array([1, 2, 4, 10])
print("x =", x)
print("ln(x) =", np.log(x))
print("log2(x) =", np.log2(x))
print("log10(x) =", np.log10(x))
7.4 Comparison operators
x = np.array([1, 2, 3, 4, 5])
x < 3 # less than
x >= 3 # greater or equal
x != 3 # unequal
x == 3 # equal
print("x < 3", x < 3)
print("x >= 3", x >= 3)
print("x != 3", x != 3)
print("x == 3", x == 3)
np.count_nonzero(x < 6)
#how many values are less than 6 ?
np.any(x < 8)
#are there varlues over 8 ?
np.all(x < 10)
#are all values less than 10 ?
8 Aggregation
MyBigArray = np.random.random(1000000)
print("sum =", np.sum(MyBigArray))
print("min =", np.min(MyBigArray))
print("max =", np.max(MyBigArray))
8.1 Multi-dimensional aggregation
MultiArray = np.random.random((3, 4))
print(MultiArray)
MultiArray.sum()
#sum of whole array
MultiArray.min(axis=0)
#min of a column
MultiArray.max(axis=1)
#max of a row
9 Timing of functions
test = np.random.random(1000000)
%timeit sum(test)
%timeit np.sum(test)
10 Conclusion
NumPy is a very useful library from Python. In my opinion, their use is essential in data science.