Professional Documents
Culture Documents
Numpy & Pandas
Numpy & Pandas
MUHAMMAD QASIM
RAUF UR RAHIM
MUHAMMAD ADAN
SHAHZAD AHMED
Topics we will cover
What is Numpy
Dimentionality in Numpy (creating and accessing elements)
Fancy Slicing
Concatenating and Splitting Arrays
Numpy – An Introduction
required for high performance scientific computing and data analysis
operations on entire arrays of data without having to write loops
Linear algebra, random number generation, and Fourier transform capabilities
Dimentionality
Import numpy as np
a = np.array ( [ 3 , 2] )
a = np.array ( [ [ 1 , 0 , 1 ],
[3,4,1]])
a = np.array ( [ [ [ 1 , 7 , 9 ],
[ 5 , 9 , 3 ],
[ 7 , 9 , 9 ] ],
[ [ 1 , 2 , 6 ],
[ 5 , 9 , 0 ],
[2,0,3]]])
Accessing Elements of Array
a[0,2,1]
5 X 4 array
Fancy Slicing / Indexing
array( [ [ 10 , 0 , 2 , 7 ],
[ 4 , 3 , 3 , 21 ],
[ 12 , 2 , 7 , 5 ],
Array [ [ ] ,[ ]]
[ 0 , 13 , 3 , 7 ],
[ 41 , 8 , 5 , 1 ] ] )
5 X 4 array
Rows Column
Fancy Slicing / Indexing
array( [ [ 10 , 0 , 2 , 7 ],
[ 4 , 3 , 3 , 21 ],
[ 12 , 2 , 7 , 5 ],
Array [ [ 1 ] , [1 ]]
[ 0 , 13 , 3 , 7 ],
[ 41 , 8 , 5 , 1 ] ] )
5 X 4 array
Rows Column
Fancy Slicing / Indexing
array( [ [ 10 , 0 , 2 , 7 ],
[ 4 , 3 , 3 , 21 ],
[ 12 , 2 , 7 , 5 ],
Array [ [ 1 , 3 ] , [1 , 3 ]]
[ 0 , 13 , 3 , 7 ],
[ 41 , 8 , 5 , 1 ] ] )
5 X 4 array
Rows Column
Fancy Slicing / Indexing
array( [ [ 10 , 0 , 2 , 7 ],
[ 4 , 3 , 3 , 21 ],
[ 12 , 2 , 7 , 5 ],
Array [ [ 1 , 3 , 4 ] , [ 1 , 3 , 1 ] ]
[ 0 , 13 , 3 , 7 ],
[ 41 , 8 , 5 , 1 ] ] )
5 X 4 array
Rows Column
Fancy Slicing / Indexing
array( [ [ 10 , 0 , 2 , 7 ],
[ 4 , 3 , 3 , 21 ], Row 1
[ 12 , 2 , 7 , 5 ],
Array [ [ 1 , 3 , 4 ] ]
[ 0 , 13 , 3 , 7 ], Row 3
[ 41 , 8 , 5 , 1 ] ] ) Row 4
5 X 4 array
Rows Column
Fancy Slicing / Indexing
array( [ [ 10 , 0 , 2 , 7 ],
[ 4 , 3 , 3 , 21 ],
[ 12 , 2 , 7 , 5 ],
Array [ [ 1 , 3 , 4 ] ]
[ 0 , 13 , 3 , 7 ],
[ 41 , 8 , 5 , 1 ] ] )
5 X 4 array
Rows
Fancy Slicing / Indexing
array( [ [ 10 , 0 , 2 , 7 ],
[ 4 , 3 , 3 , 21 ],
[ 12 , 2 , 7 , 5 ],
Array [ : , [1 ,3,4 ] ]
[ 0 , 13 , 3 , 7 ],
[ 41 , 8 , 5 , 1 ] ] )
5 X 4 array
Rows Column
Fancy Slicing / Indexing
array( [ [ 10 , 0 , 2 , 7 ],
[ 4 , 3 , 3 , 21 ],
[ 12 , 2 , 7 , 5 ],
Array [ : , [1 ,3,2 ] ]
[ 0 , 13 , 3 , 7 ],
[ 41 , 8 , 5 , 1 ] ] )
5 X 4 array
Rows Column
Fancy Slicing / Indexing
array( [ [ 10 , 0 , 2 , 7 ],
[ 4 , 3 , 3 , 21 ],
[ 12 , 2 , 7 , 5 ],
Array [ : , [1 ,3,2 ] ]
[ 0 , 13 , 3 , 7 ],
[ 41 , 8 , 5 , 1 ] ] )
5 X 4 array
Rows Column
Fancy Slicing / Indexing
array( [ [ 10 , 0 , 2 , 7 ],
Error !
[ 4 , 3 , 3 , 21 ], Found 2D
[ 12 , 2 , 7 , 5 ],
Array [ [ 1 , 3 , 4 ] ]
[ 0 , 13 , 3 , 7 ],
[ 41 , 8 , 5 , 1 ] ] )
5 X 4 array
7 8 9
arr2 = np.array ( [ [ 7, 8, 9 ] , [ 10, 11, 12 ] ] )
10 11 12
7 8 9
arr2 = np.array ( [ [ 7, 8, 9 ] , [ 10, 11, 12 ] ] )
10 11 12
1 2 3
4 5 6
np.concatenate ( [arr1, arr2] , axis = 0 ) 7 8 9
10 11 12
np.vstack ( ( arr1 , arr2 ) )
7 8 9
arr2 = np.array ( [ [ 7, 8, 9 ] , [ 10, 11, 12 ] ] )
10 11 12
1 2 3
4 5 6
np.concatenate ( [arr1, arr2] , axis = 0 )
7 8 9
np.vstack ( ( arr1 , arr2 ) ) 10 11 12
7 8 9
arr2 = np.array ( [ [ 7, 8, 9 ] , [ 10, 11, 12 ] ] )
10 11 12
7 8 9
arr2 = np.array ( [ [ 7, 8, 9 ] , [ 10, 11, 12 ] ] )
10 11 12
[[7,8,9]
[10,11,12] ] ] )
Stacking (Gulf of Alaska)
Concatenation (axis 1 / column wise)
1 2 3
arr1 = np.array ( [ [ 1, 2, 3 ] , [ 4, 5, 6 ] ] ) 4 5 6
7 8 9
arr2 = np.array ( [ [ 7, 8, 9 ] , [ 10, 11, 12 ] ] )
10 11 12
7 8 9
arr2 = np.array ( [ [ 7, 8, 9 ] , [ 10, 11, 12 ] ] )
10 11 12
[[4,5,6]
[10,11,12] ] ] )
End of Numpy
Pandas
Creating Series
obj1 = pd.series ( [ 1 , 2 , 3 , 4 , 5 ] )
Out:
0 1
1 2
Values
2 3
3 4
4 5 Index generated on auto
Creating Series
obj1 = pd.series ( [ 1 , 2 , 3 , 4 , 5 ] , index = [ “A” , “B” , “C” , “D” , “E” ] )
Out:
A 1
B 2
Values
C 3
D 4
E 5 Index generated on auto
Creating Series
obj1 = pd.series ( [ 1 , 2 , 3 , 4 , 5 ] , index = [ “A” , “B” , “C” , “D” , “E” ] )
Out:
A 1
B 2
C 3
D 4
E 5
obj1[ “D” ] = 10
obj1[ [ “C”, “A” , “D” ] ]
C 3
A 1
D 10
Creating DataFrame
A B C D E
0 65 28 5 46 79
1 29 25 45 94 67
2 2 20 91 93 18
3 79 76 77 25 28
4 69 64 78 47 58
df = pd.concat ([df1, df2], axis=0)
update
Name Course Fee A B C D E
ID course code
◦ Ascending
◦ Descending
3 Rules
1: Choose Index or Values
Rows no / Columns no itself
Other values than Rows or Column
2: Row or Column
3: Ascending or Descending
Sort By Index
df.sort_index ( axis = 0, ascending = False )
Rule 1 Rule 2
WhatsApp
0345-7770757
Rauf ur Rahim