Path: blob/main/Trabajo_grupal/WG3/Grupo_10_spyder.py
2714 views
# -*- coding: utf-8 -*-1"""2Created on Sat Sep 17 16:46:11 202234@author: User5"""6import numpy as np7import pandas as pd8from pandas import DataFrame, Series9import statistics10import inspect # Permite conocer los argumentos de una función , classes, etc.11from random import *1213#-------------------------------------------------------------------------14# Pregunta 215#-------------------------------------------------------------------------161718# Creamos un vector "a" con 100 observaciones19#--------------------------------------------20vector = np.arange(100)2122#Reescalamos el vector con la funcion dada23#----------------------------------------24# 1era forma25def rescale(x):2627out = (x - min(x))/(max(x)-min(x))2829return out3031list( map( lambda x: rescale(x) , vector) )3233# 2da forma34def rescale(x,max,min):3536out = (x - min(x))/(max(x)-min(x))3738return out3940map( lambda x, v1 = max(vector), v2 = min(vector): rescale(X,v1, v2) , vector)4142list( map( lambda x, v1 = max(vector), v2 = min(vector): rescale(x,v1, v2) , vector) )434445vector1 = (vector - min(vector))/(max(vector)-min(vector))4647# Creamos una matriz de 100x5048#------------------------------49np.random.seed(15632)50X1 = np.random.rand(100)51print(X1)52X2 = np.random.rand(100)53X3 = np.random.rand(100)54X4 = np.random.rand(100)55X5 = np.random.rand(100)56X6 = np.random.rand(100)57X7 = np.random.rand(100)58X8 = np.random.rand(100)59X9 = np.random.rand(100)60X10 = np.random.rand(100)61X11 = np.random.rand(100)62X12 = np.random.rand(100)63X13 = np.random.rand(100)64X14 = np.random.rand(100)65X15 = np.random.rand(100)66X16 = np.random.rand(100)67X17 = np.random.rand(100)68X18 = np.random.rand(100)69X19 = np.random.rand(100)70X20 = np.random.rand(100)71X21 = np.random.rand(100)72X22 = np.random.rand(100)73X23 = np.random.rand(100)74X24 = np.random.rand(100)75X25 = np.random.rand(100)76X26 = np.random.rand(100)77X27 = np.random.rand(100)78X28 = np.random.rand(100)79X29 = np.random.rand(100)80X30 = np.random.rand(100)81X31 = np.random.rand(100)82X32 = np.random.rand(100)83X33 = np.random.rand(100)84X34 = np.random.rand(100)85X35 = np.random.rand(100)86X36 = np.random.rand(100)87X37 = np.random.rand(100)88X38 = np.random.rand(100)89X39 = np.random.rand(100)90X40 = np.random.rand(100)91X41 = np.random.rand(100)92X42 = np.random.rand(100)93X43 = np.random.rand(100)94X44 = np.random.rand(100)95X45 = np.random.rand(100)96X46 = np.random.rand(100)97X47 = np.random.rand(100)98X48 = np.random.rand(100)99X49 = np.random.rand(100)100X50 = np.random.rand(100)101102103104X = np.column_stack((np.ones(100),X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,X40,X41,X42,X43,X44,X45,X46,X47,X48,X49,X50))105print (X)106107#Reescalamos la matriz con la funcion dada108#----------------------------------------109X_res = np.apply_along_axis(lambda X: (X - min(X))/(max(X)-min(X)),0, X)110print (X_res)111112113#-------------------------------------------------------------------------114# Pregunta 3115#-------------------------------------------------------------------------116117#args118#------119120#Reescalamos el vector con la funcion dada121122# 1era forma123def rescalev( *args ):124125minimo = np.min(vector)126127maximo = np.max(vector)128129result = list( map( lambda x: (x-min(x))/(max(x)-min(x)) , vector) )130131return result132133134rescalev(vector)135136# Estandarizamos el vector137138def standarizev( *args ):139140mean = np.mean(vector)141142std = np.std(vector)143144result = list( map( lambda x: (x- np.mean(x))/np.std(x) , vector) )145146147return result148149150standarizev(vector)151152153#kwargs154#------155156def calculator( *list_vars, **kwargs):157if ( kwargs[ 'function' ] == "reescale" ) :158159# Get the first value160result = np.apply_along_axis(lambda X: (X - min(X))/(max(X)-min(X)),0, X)161162elif ( kwargs[ 'function' ] == "standarize" ) :163164result = np.apply_along_axis(lambda x: (x-x.mean())/x.std(),0, X)165else:166raise ValueError( f"The function argument {kwargs[ 'function' ]} is not supported." )167168# Mensaje de error por tipo de argumento169170return result171172calculator( X, function = "reescale" )173calculator( X, function = "standarize" )174175176177178