Numpy is a popular Python libaray in Machine Learning area. Here summarised some useful tips for Numpy.
Basics of Numpy Array 1 2 3 4 5 6 7 8 array = np.array([[1 , 2 , 3 ], [2 , 3 , 4 ]]) print(array) print('Number of dim:' , array.ndim) print('Shape:' , array.shape) print('size:' , array.size)
[[1 2 3]
[2 3 4]]
Number of dim: 2
Shape: (2, 3)
size: 6
1 2 3 4 5 6 7 8 9 10 11 12 array = np.array([1 , 2 , 3 ], dtype = np.int) print(array.dtype) array = np.array([1 , 2 , 3 ], dtype = np.int32) print(array.dtype) array = np.array([1 , 2 , 3 ], dtype = np.float) print(array.dtype) array = np.array([1 , 2 , 3 ], dtype = np.float32) print(array.dtype)
int64
int32
float64
float32
Creating Matrix 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 matrix = np.zeros((2 ,3 )) print('Zeros matrix' ) print(matrix) matrix = np.ones((3 ,4 )) print('Ones matrix' ) print(matrix) matrix = np.empty((2 ,2 )) print('Empty matrix' ) print(matrix) matrix = np.random.random((2 ,4 )) print('Random matrix' ) print(matrix)
Zeros matrix
[[ 0. 0. 0.]
[ 0. 0. 0.]]
Ones matrix
[[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]]
Empty matrix
[[ 2.68156159e+154 -2.32036126e+077]
[ 6.94773593e-310 2.78136381e-309]]
Random matrix
[[ 0.3361672 0.15099262 0.43580346 0.07635681]
[ 0.21574756 0.40070359 0.64789344 0.66923312]]
Numpy Arange 1 2 3 a = np.arange(10 , 20 , 2 ) print(a)
[10 12 14 16 18]
1 2 3 a = np.arange(12 ).reshape((3 ,4 )) print(a)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
1 2 3 4 5 6 7 8 a = np.linspace(1 , 10 , 5 ) print(a) print() a = np.linspace(1 , 10 , 6 ).reshape((2 , 3 )) print(a)
[ 1. 3.25 5.5 7.75 10. ]
[[ 1. 2.8 4.6]
[ 6.4 8.2 10. ]]
Numpy Operations 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 a = np.array([10 , 20 , 30 , 40 ]) b = np.arange(4 ) print('a = ' , a) print('b = ' , b) c = a - b print('Substraction:' , c) c = a + b print('Sum:' , c) c = b**2 print('Square:' , c) c = 10 * np.sin(a) print('Sin:' , c) c = 10 * np.cos(a) print('Cos:' , c) c = 10 * np.tan(a) print('Tan:' , c)
a = [10 20 30 40]
b = [0 1 2 3]
Substraction: [10 19 28 37]
Sum: [10 21 32 43]
Square: [0 1 4 9]
Sin: [-5.44021111 9.12945251 -9.88031624 7.4511316 ]
Cos: [-8.39071529 4.08082062 1.5425145 -6.66938062]
Tan: [ 6.48360827 22.37160944 -64.05331197 -11.17214931]
[0 1 2 3]
[ True True True False]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 a = np.array([[1 , 1 ], [0 , 1 ]]) b = np.arange(4 ).reshape((2 ,2 )) print('a = ' , a) print('b = ' , b) c = a * b print('Element Multiply:' ) print(c) c = np.dot(a, b) print('Matrix Multiply:' ) print(c) c = a.dot(b) print('Matrix Multiply:' ) print(c)
a = [[1 1]
[0 1]]
b = [[0 1]
[2 3]]
Element Multiply:
[[0 1]
[0 3]]
Matrix Multiply:
[[2 4]
[2 3]]
Matrix Multiply:
[[2 4]
[2 3]]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 a = np.random.random((2 ,4 )) print('a = ' , a) print('mean:' , np.mean(a)) print('mean:' , a.mean()) print('average:' , np.average(a)) print('median:' , np.median(a)) print('sum:' , np.sum(a)) print('min:' , np.min(a)) print('max:' , np.max(a)) print('sum of row:' , np.sum(a, axis = 1 )) print('min of column:' , np.min(a, axis = 0 )) print('max of row:' , np.max(a, axis =1 )) print('cumsum:' , np.cumsum(a)) print('diff:' , np.diff(a)) print('sort:' , np.sort(a)) print('trnaspose:' ) print(np.transpose(a)) print('trnaspose:' ) print(a.T) print('flatten matrix:' , a.flatten())
a = [[ 0.81709816 0.84494671 0.48110455 0.15578455]
[ 0.26020247 0.20752249 0.93577815 0.10599093]]
mean: 0.476053500013
mean: 0.476053500013
average: 0.476053500013
median: 0.370653509283
sum: 3.8084280001
min: 0.10599093105
max: 0.935778148161
sum of row: [ 2.29893396 1.50949404]
min of column: [ 0.26020247 0.20752249 0.48110455 0.10599093]
max of row: [ 0.84494671 0.93577815]
cumsum: [ 0.81709816 1.66204487 2.14314942 2.29893396 2.55913643 2.76665892
3.70243707 3.808428 ]
diff: [[ 0.02784855 -0.36384216 -0.32532 ]
[-0.05267998 0.72825566 -0.82978722]]
sort: [[ 0.15578455 0.48110455 0.81709816 0.84494671]
[ 0.10599093 0.20752249 0.26020247 0.93577815]]
trnaspose:
[[ 0.81709816 0.26020247]
[ 0.84494671 0.20752249]
[ 0.48110455 0.93577815]
[ 0.15578455 0.10599093]]
trnaspose:
[[ 0.81709816 0.26020247]
[ 0.84494671 0.20752249]
[ 0.48110455 0.93577815]
[ 0.15578455 0.10599093]]
flatten matrix: [ 0.81709816 0.84494671 0.48110455 0.15578455 0.26020247 0.20752249
0.93577815 0.10599093]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 A = np.arange(2 , 14 ).reshape((3 , 4 )) print('A = ' ) print(A) print('min index' , np.argmin(A)) print('max index' , np.argmax(A)) print('non-zero' , np.nonzero(A)) print('clip' ) print(np.clip(A, 5 , 9 ))
A =
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
min index 0
max index 11
non-zero (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]))
clip
[[5 5 5 5]
[6 7 8 9]
[9 9 9 9]]
Numpy Index 1 2 3 4 5 6 7 A = np.arange(3 , 15 ) print('A = ' ) print(A) print('Element with index 3:' , A[3 ])
A =
[ 3 4 5 6 7 8 9 10 11 12 13 14]
Element with index 3: 6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A = np.arange(3 , 15 ).reshape((3 , 4 )) print('A = ' ) print(A) print('Row with index 2:' , A[2 ]) print('Row with index 2:' , A[2 , :]) print('Elment index between 1 and 3(exclude) in row with index 1:' , A[1 , 1 :3 ]) print('Column with index 2:' , A[:, 2 ]) print('Element at row index 2 nad column index 1:' , A[2 ][1 ]) print('Element at row index 2 nad column index 1:' , A[2 , 1 ])
A =
[[ 3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]]
Row with index 2: [11 12 13 14]
Row with index 2: [11 12 13 14]
Elment index between 1 and 3(exclude) in row with index 1: [8 9]
Column with index 2: [ 5 9 13]
Element at row index 2 nad column index 1: 12
Element at row index 2 nad column index 1: 12
Iterate Matrix 1 2 3 4 5 i = 0 for row in A: print('row no.' , i, row) i += 1
row no. 0 [3 4 5 6]
row no. 1 [ 7 8 9 10]
row no. 2 [11 12 13 14]
1 2 3 4 i = 0 for column in A.T: print('colomun no.' , i, column) i += 1
colomun no. 0 [ 3 7 11]
colomun no. 1 [ 4 8 12]
colomun no. 2 [ 5 9 13]
colomun no. 3 [ 6 10 14]
1 2 for item in A.flat: print(item)
3
4
5
6
7
8
9
10
11
12
13
14
Merage 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 A = np.array([1 , 1 , 1 ]) B = np.array([2 , 2 , 2 ]) print('A =' , A) print('B =' , B) print('vertical stack:' ) print(np.vstack((A, B))) print('horizontal stack:' ) print(np.hstack((A, B))) print('add row dimension:' , A[np.newaxis, :]) print('add column dimension:' ) print(A[:, np.newaxis]) A = A[:, np.newaxis] B = B[:, np.newaxis] C = np.concatenate((A, B, B, A), axis = 1 ) print('concatenate:' ) print(C)
A = [1 1 1]
B = [2 2 2]
vertical stack:
[[1 1 1]
[2 2 2]]
horizontal stack:
[1 1 1 2 2 2]
add row dimension: [[1 1 1]]
add column dimension:
[[1]
[1]
[1]]
concatenate:
[[1 2 2 1]
[1 2 2 1]
[1 2 2 1]]
Divide 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 A = np.arange(12 ).reshape((3 , 4 )) print('A =' ) print(A) print('horizontal divide' ) print(np.split(A, 2 , axis = 1 )) print(np.hsplit(A, 2 )) print('vertical divide' ) print(np.split(A, 3 , axis = 0 )) print(np.vsplit(A, 3 )) print('non-even divide' ) print(np.array_split(A, 3 , axis = 1 ))
A =
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
horizontal divide
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
vertical divide
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
non-even divide
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2],
[ 6],
[10]]), array([[ 3],
[ 7],
[11]])]
Copy 1 2 3 4 5 6 7 8 9 10 a = np.arange(4 ) print('a:' , a) b = a c = np.copy(a) a[1 :3 ] = [100 , 111 ] print('a:' , a) print('b:' , b) print('c:' , c)
a: [0 1 2 3]
a: [ 0 100 111 3]
b: [ 0 100 111 3]
c: [0 1 2 3]