Inheritance : Is - a Vers u s Has - A W OR K IN G W ITH TH E C L - - PowerPoint PPT Presentation

inheritance is a vers u s has a
SMART_READER_LITE
LIVE PREVIEW

Inheritance : Is - a Vers u s Has - A W OR K IN G W ITH TH E C L - - PowerPoint PPT Presentation

Inheritance : Is - a Vers u s Has - A W OR K IN G W ITH TH E C L ASS SYSTE M IN P YTH ON Vicki Bo y kis Senior Data Scientist E x tending o u r DataShells Inheritance - A class that takes on a rib u tes from another , " parent "


slide-1
SLIDE 1

Inheritance: Is-a Versus Has-A

W OR K IN G W ITH TH E C L ASS SYSTE M IN P YTH ON

Vicki Boykis

Senior Data Scientist

slide-2
SLIDE 2

WORKING WITH THE CLASS SYSTEM IN PYTHON

Extending our DataShells

Inheritance - A class that takes on aributes from another, "parent" class and adds some more of its own functionality.

slide-3
SLIDE 3

WORKING WITH THE CLASS SYSTEM IN PYTHON

Two Dinosaurs

slide-4
SLIDE 4

WORKING WITH THE CLASS SYSTEM IN PYTHON

Is a and Has a Relationship

slide-5
SLIDE 5

WORKING WITH THE CLASS SYSTEM IN PYTHON

Is a and Has a Relationship

A Pterodactyl is-a Dinosaur A Tyrannosaurus is-a Dinosaur Is a Pterodactyl a dinosaur? Yes,pterodactyl inherits from dinosaur. Is a Tyrannosaurus a pterodactyl? No, but they're both dinosaurs. Is a dinosaur a pterodactyl? No, so it doesn't work the other way, either.

slide-6
SLIDE 6

WORKING WITH THE CLASS SYSTEM IN PYTHON

Inheriting a DataShell

# new class which inherits from DataShell: StDevDataShell class StDevDataShell(DataShell): # now this class inherits all attributes and methods from DataShell pass

slide-7
SLIDE 7

Let's practice!

W OR K IN G W ITH TH E C L ASS SYSTE M IN P YTH ON

slide-8
SLIDE 8

Inheritance with DataShells

W OR K IN G W ITH TH E C L ASS SYSTE M IN P YTH ON

Vicki Boykis

  • Sr. Data Scientist
slide-9
SLIDE 9

WORKING WITH THE CLASS SYSTEM IN PYTHON

DataShell with Standard Deviation

slide-10
SLIDE 10

WORKING WITH THE CLASS SYSTEM IN PYTHON

Changing the DataShell

class DataShell: def __init__(self, filename): self.filename = filename def create_datashell(self): data_array = np.genfromtxt(self.filename, delimiter=',', dtype=None) self.array = data_array return self.array def show_shell(self): print(self.array) def rename_column(self, old_colname, new_colname): for index, value in enumerate(self.array[0]): if value == old_colname.encode('UTF-8'): self.array[0][index] = new_colname return self.array def five figure summary(self col position):

slide-11
SLIDE 11

WORKING WITH THE CLASS SYSTEM IN PYTHON

Allowing for a standard deviation

def get_stdev(self,col_position): column = self.array[1:,col_position].astype(np.float) stdev = np.ndarray.std(column,axis=0) return f"Standard Deviation of column {col_position}: {stdev}"

slide-12
SLIDE 12

WORKING WITH THE CLASS SYSTEM IN PYTHON

Inheritance with DataShells

class DataStDev(DataShell): def __init__(self,filename): DataShell.filename = filename def get_stdev(self,col_position): column = self.array[1:,col_position].astype(np.float) stdev = np.ndarray.std(column,axis=0) return f"Standard Deviation of column {col_position}: {stdev}"

slide-13
SLIDE 13

WORKING WITH THE CLASS SYSTEM IN PYTHON

Calling our new DataShell

Code to call it:

car_data = 'mtcars.csv' my_st_dev_shell = DataStDev(car_data) my_st_dev_shell.create_datashell() my_st_dev_shell.get_stdev(1) 'Standard Deviation of column 1: 5.932029552301218'

slide-14
SLIDE 14

Let's practice!

W OR K IN G W ITH TH E C L ASS SYSTE M IN P YTH ON

slide-15
SLIDE 15

Composition

W OR K IN G W ITH TH E C L ASS SYSTE M IN P YTH ON

Vicki Boykis

Senior Data Scientist

slide-16
SLIDE 16

WORKING WITH THE CLASS SYSTEM IN PYTHON

Inheritance versus Composition

slide-17
SLIDE 17

WORKING WITH THE CLASS SYSTEM IN PYTHON

Composing with Animals

slide-18
SLIDE 18

WORKING WITH THE CLASS SYSTEM IN PYTHON

Composition In a DataShell - 1

Five-Figure Summary Composition

def five_figure_summary(self,col_position): statistics = stats.describe(self.array[1:,col_position].astype(np.float)) return f"Five-figure stats of column {col_position}: {statistics}"

slide-19
SLIDE 19

WORKING WITH THE CLASS SYSTEM IN PYTHON

Composition In a DataShell - 2

Create DataShell Composition:

def create_datashell(self): data_array = np.genfromtxt(self.filename, delimiter=',', dtype=None) self.array = data_array return self.array

slide-20
SLIDE 20

WORKING WITH THE CLASS SYSTEM IN PYTHON

Composing with Pandas

Create DataShell Composition:

class DataShell: def __init__(self, filename): self.filename = filename def create_datashell(self): data_array = np.genfromtxt(self.filename, delimiter=',', dtype=None) self.array = data_array return self.array class DataShellComposed: def __init__(self, filename): self.filename = filename def create_datashell(self): self.df = pandas.read_csv() return self.df

slide-21
SLIDE 21

WORKING WITH THE CLASS SYSTEM IN PYTHON

What does our new class look like?

car_data = 'mtcars.csv' my_data_shell = DataShellComposed(car_data) my_data_shell.create_datashell() print(type(my_data_shell.df)) <class 'pandas.core.frame.DataFrame'>

slide-22
SLIDE 22

Let's practice!

W OR K IN G W ITH TH E C L ASS SYSTE M IN P YTH ON

slide-23
SLIDE 23

Wrapping Up OOP

W OR K IN G W ITH TH E C L ASS SYSTE M IN P YTH ON

Vicki Boykis

Senior Data Scientist

slide-24
SLIDE 24

WORKING WITH THE CLASS SYSTEM IN PYTHON

Understanding Objects

slide-25
SLIDE 25

WORKING WITH THE CLASS SYSTEM IN PYTHON

Understanding Classes and Instances of Classes.

Classes: Made up of methods and aributes Initialized with an init constructor method Has a self aribute that's referring to the class (or particular instance of that class)

slide-26
SLIDE 26

WORKING WITH THE CLASS SYSTEM IN PYTHON

The DataShell

slide-27
SLIDE 27

WORKING WITH THE CLASS SYSTEM IN PYTHON

The benefits of OOP

slide-28
SLIDE 28

WORKING WITH THE CLASS SYSTEM IN PYTHON

Inheritance and Composition

slide-29
SLIDE 29

WORKING WITH THE CLASS SYSTEM IN PYTHON

How to get better at OOP

1) Read well-documented codebases 2) Write your own classes 3) Don't get discouraged!

slide-30
SLIDE 30

Final Steps

W OR K IN G W ITH TH E C L ASS SYSTE M IN P YTH ON