#1
import math as mt
class circulo:
def __init__(self, diam=0, r=0):
self.__diam=diam
self.__r=r
@property
def diam(self):
return self.__diam
@diam.setter
def diam(self, xdiam):
self.__diam = xdiam
@property
def r(self):
return self.__r
@property
def area(self):
return mt.pi * self.r**2
@property
def perimetro(self):
return mt.pi * self.diam
def __str__(self):
return "diametro: " + str(self.diam) + " radio: " + str(self.r)
class rombo:
def __init__(self, lado, ds, di):
self.__lado = lado
self.__ds = ds
self.__di = di
@property
def lado(self):
return self.__lado
@lado.setter
def lado(self,ladox):
self.__lado = ladox
@property
def ds(self):
return self.__ds
@ds.setter
def ds(self,dsx):
self.__ds = dsx
@property
def di(self):
return self.__di
@di.setter
def di(self,dix):
self.__di = dix
@property
def area(self):
return (self.ds*self.di)/2
@property
def perimetro(self):
return self.lado*4
def __str__(self):
return "lado: " + str(self.lado) + " diagonal superior: " + str(self.ds) + " diagonal inferior: " + str(self.di)
circulo1 = circulo(2,2)
print(circulo1)
## diametro: 2 radio: 2
print(f"area del circulo= {circulo1.area}")
## area del circulo= 12.566370614359172
print(f"perimetro del circulo= {circulo1.perimetro}")
## perimetro del circulo= 6.283185307179586
rombo1 = rombo(2,2,2)
print(rombo1)
## lado: 2 diagonal superior: 2 diagonal inferior: 2
print(f"area del rombo= {rombo1.area}")
## area del rombo= 2.0
print(f"perimetro del rombo= {rombo1.perimetro}")
## perimetro del rombo= 8
#2
import numpy as np
class operacion:
def __init__(self,x,y):
self.__x = np.array(x)
self.__y = np.array(y)
@property
def x(self):
return self.__x
@property
def y(self):
return self.__y
@x.setter
def x(self, nx):
self.__x = nx
@y.setter
def y(self, ny):
self.__y = ny
def suma(self):
return self.x + self.y
def resta(self):
return self.x - self.y
def mult(self):
return np.dot(self.x,self.y)
def corr(self):
return np.corrcoef(self.x,self.y)[0,1]
def cov(self):
return np.cov(self.x,self.y)[0,1]
def __str__(self):
return "x: " + str(self.x)+"y: "+ str(self.y)
op = operacion([2,4,6,8,10],[5,10,15,20,15])
print(op)
## x: [ 2 4 6 8 10]y: [ 5 10 15 20 15]
print(f"suma: {op.suma()}")
## suma: [ 7 14 21 28 25]
print(f"resta: {op.resta()}")
## resta: [ -3 -6 -9 -12 -5]
print(f"multiplicacion: {op.mult()}")
## multiplicacion: 450
print(f"correlacion: {op.corr()}")
## correlacion: 0.8320502943378437
print(f"covarianza: {op.cov()}")
## covarianza: 15.0
#3
import pandas as pd
class frutas:
def __init__(self,dicc = {}):
self.__dicc = dicc
@property
def dicc(self):
return self.__dicc
@dicc.setter
def dicc(self, ndicc):
self.__dicc = ndicc
def adf(self):
return pd.DataFrame(self.dicc, index=[0])
def agrega(self, nombre, precio):
self.dicc[nombre]= precio
def elimina(self,nombre):
del self.dicc[nombre]
def precio(self,nombre,kilo):
return self.dicc[nombre]*kilo
def maximo(self):
return max(self.dicc.values())
def buscar(self, nombre):
if nombre in self.dicc:
return (nombre,self.dicc[nombre])
else:
return ("Esa fruta no esta en el diccionario")
def __str__(self):
return "diccionario: " + str(self.dicc)
f1 = frutas()
f1.agrega("manzana",5)
f1.agrega("mango",6)
f1.agrega("pera",7)
f1.agrega("uvas",4)
f1.agrega("sandia",9)
f1.agrega("moras",2)
print(f1.adf())
## manzana mango pera uvas sandia moras
## 0 5 6 7 4 9 2
f1.elimina("uvas")
print(f1.adf())
## manzana mango pera sandia moras
## 0 5 6 7 9 2
print("el total a pagar:" +str(f1.precio("sandia", 10)))
## el total a pagar:90
print(f"el precio maximo es: {str(f1.maximo())}")
## el precio maximo es: 9
print(f1.buscar("moras"))
## ('moras', 2)
#4
import pandas as pd
titanicdata = pd.read_csv("C:/Users/Rodrigo/Desktop/TEC/Concentracion/titanic.csv")
class titanic:
def __init__(self, df):
self.__df = df
@property
def df(self):
return self.__df
@df.setter
def df(self, ndf):
self.__df = ndf
def actualizar(self, nombre, clase):
self.df.loc[self.df['Name'] == nombre, 'Pclass'] = clase
return self.df.loc[self.df['Name'] == nombre]
def resumen(self, nombre):
return self.df.loc[self.df['Name'] == nombre]
def rescol(self, columna):
if self.df[columna].dtype == 'object':
return self.df[columna].mode()
else:
return self.df[columna].mean()
def sobrevivientes(self):
return self.df.groupby('Pclass').Survived.sum()
def agregar(self, sv, clase, nombre, sexo, edad, hermanos, padres, tarifa, cabina, embarque):
nid= (len(self.df)+1)
self.df.loc[len(self.df.index)] = [nid, 0, clase, nombre, sexo, edad, hermanos, padres, tarifa, cabina, embarque, sv]
return self.df
def eliminar(self, nombre):
self.df.drop(self.df[self.df['Name'] == nombre].index, inplace=True)
return self.df
def __str__(self):
return "diccionario: " + str(self.df)
data = titanic(titanicdata)
data.agregar(1,2, "Rodrigo Rioseco", "male", 29, 0, 1, 234, 5, "S")
## PassengerId Survived Pclass ... Fare Cabin Embarked
## 0 1 0 3 ... 7.2500 NaN S
## 1 2 1 1 ... 71.2833 C85 C
## 2 3 1 3 ... 7.9250 NaN S
## 3 4 1 1 ... 53.1000 C123 S
## 4 5 0 3 ... 8.0500 NaN S
## ... ... ... ... ... ... ... ...
## 1305 1306 1 1 ... 108.9000 C105 C
## 1306 1307 0 3 ... 7.2500 NaN S
## 1307 1308 0 3 ... 8.0500 NaN S
## 1308 1309 0 3 ... 22.3583 NaN C
## 1309 1310 0 2 ... 5.0000 S 1
##
## [1310 rows x 12 columns]
print(data.actualizar("Rodrigo Rioseco", 2))
## PassengerId Survived Pclass ... Fare Cabin Embarked
## 1309 1310 0 2 ... 5.0 S 1
##
## [1 rows x 12 columns]
print(data.resumen("Rodrigo Rioseco"))
## PassengerId Survived Pclass ... Fare Cabin Embarked
## 1309 1310 0 2 ... 5.0 S 1
##
## [1 rows x 12 columns]
print(data.rescol("Age"))
## 29.880296084049665
print(data.sobrevivientes())
## Pclass
## 1 186
## 2 117
## 3 191
## Name: Survived, dtype: int64