from numpy import array
from numpy import empty
from numpy import zeros
from numpy import ones
from numpy import vstack
from numpy import hstack
NumPy
Introduction to NumPy Arrays
NumPy N-dimensional Array
= [1.0, 2.0, 3.0] my_list
= array(my_list) my_array
type(my_array)
numpy.ndarray
print(my_array)
[1. 2. 3.]
print(my_array.shape, my_array.dtype)
(3,) float64
Functions to Create Arrays
Empty
= empty([3,3])
my_array my_array
array([[6.94676088e-310, 6.94676088e-310, 0.00000000e+000],
[0.00000000e+000, 0.00000000e+000, 0.00000000e+000],
[1.23075756e-312, 2.42092166e-322, 6.94676088e-310]])
Zeros
= zeros([2,5])
my_array my_array
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])
Ones
= ones([4,2])
my_array my_array
array([[1., 1.],
[1., 1.],
[1., 1.],
[1., 1.]])
Combining Arrays
Vertical Stack
= array([1,2,3])
a1 print(a1)
[1 2 3]
= array([4,5,6])
a2 print(a2)
[4 5 6]
= vstack((a1,a2))
a3 print(a3)
[[1 2 3]
[4 5 6]]
print(a3.shape)
(2, 3)
Horizontal Stack
= array([1,2,3]) a1
= array([4,5,6]) a2
= hstack((a1,a2))
a3 print(a3)
[1 2 3 4 5 6]
print(a3.shape)
(6,)
Index, Slice and Reshape NumPy Arrays
From List to Arrays
One-Dimensional List to Array
= [11,12,33,47]
data print(data)
[11, 12, 33, 47]
type(data)
list
= array(data)
data_array print(data_array)
[11 12 33 47]
type(data_array)
numpy.ndarray
data_array.shape
(4,)
Two-Dimensional List of Lists to Array
= [[11,22],
data 33, 44],
[55, 66]] [
print(data)
[[11, 22], [33, 44], [55, 66]]
= array(data) data_array
print(data_array)
[[11 22]
[33 44]
[55 66]]
type(data_array)
numpy.ndarray
data_array.shape
(3, 2)
Array Indexing
One-Dimensional Indexing
= array([11,22,33,44,55]) data
0] data[
11
4] data[
55
#data[5]
-1] data[
55
-5] data[
11
Two-Dimensional Indexing
= array([[11,22],
data 33, 44],
[55, 66]]) [
0,0] data[
11
0, ] data[
array([11, 22])
Array Slicing
data [from : to]
One-Dimensional Slicing
= array([11,22,33,44,55]) data
print(data[:])
[11 22 33 44 55]
print(data[0:3])
[11 22 33]
print(data[-2:])
[44 55]
Two-Dimensional Slicing
Split Input and Output Features
X = [: , : -1] this is the input
y = [: , -1] this is the output
= array([[11,22,33],
data 44,55,66],
[77,88,99]]) [
= data[: , :-1], data[:, -1] X, y
print(X)
[[11 22]
[44 55]
[77 88]]
print(y)
[33 66 99]
Split Train and Test Rows
train = data [ : split , :]
test = data [split : , :]
= array([[11,22,33],
data 44,55,66],
[77,88,99]]) [
= 2 split
= data[:split, :], data[split:,:] train, test
train
array([[11, 22, 33],
[44, 55, 66]])
test
array([[77, 88, 99]])
Array Reshaping
Data shape
= array([11,22,33,44])
data data.shape
(4,)
= array([[11,22],
data 33,44],
[55,66]])
[ data.shape
(3, 2)
0] data.shape[
3
1] data.shape[
2
Reshape 1D to 2D Array
data = data.reshape( (data.shape[0] , 1) )
= array([11,22,33,44,55])
data data.shape
(5,)
= data.reshape((data.shape[0], 1))
data data.shape
(5, 1)
Reshape 2D to 3D Array
data = data.reshape( (data.shape[0], data.shape[1], 1) )
= array([[11,22],
data 33,44],
[55,66]])
[ data.shape
(3, 2)
= data.reshape((data.shape[0], data.shape[1], 1))
data data.shape
(3, 2, 1)
NumPy Array Broadcasting
Broadcasting in NumPy
Scalar and One-Dimensional Array
a = [a1, a2, a3]
b
c = a + b
c = [a1+b, a2+b, a3+b]
= array([1,2,3])
a print(a)
[1 2 3]
= 2
b print(b)
2
= a + b
c print(c)
[3 4 5]
Scalar and Two-Dimensional Array
= array([[1,2,3],
a 1,2,3]])
[print(a)
[[1 2 3]
[1 2 3]]
= 2 b
= a + b c
print(c)
[[3 4 5]
[3 4 5]]
One-Dimensional and Two-Dimensional Arrays
= array([[1,2,3],
a 1,2,3]])
[print(a)
[[1 2 3]
[1 2 3]]
= array([4,5,6]) b
= a + b c
print(c)
[[5 7 9]
[5 7 9]]
Limitations of Broadcasting
A.shape = (2 x 3)
b.shape = (3)
A.shape = (2 x 3)
b.shape = (1 x 3)
A.shape = (2 x 3)
b.shape = (1)
A.shape = (2 x 3)
b.shape = (1 x 1)
A.shape = (2 x 3)
b.shape = (1 x 2)
= array([[1,2,3],
a 1,2,3]])
[print(a)
[[1 2 3]
[1 2 3]]
= array([1,2])
b print(b)
[1 2]
#c = a + b