Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG3/Grupo_10_spyder.py
2714 views
1
# -*- coding: utf-8 -*-
2
"""
3
Created on Sat Sep 17 16:46:11 2022
4
5
@author: User
6
"""
7
import numpy as np
8
import pandas as pd
9
from pandas import DataFrame, Series
10
import statistics
11
import inspect # Permite conocer los argumentos de una función , classes, etc.
12
from random import *
13
14
#-------------------------------------------------------------------------
15
# Pregunta 2
16
#-------------------------------------------------------------------------
17
18
19
# Creamos un vector "a" con 100 observaciones
20
#--------------------------------------------
21
vector = np.arange(100)
22
23
#Reescalamos el vector con la funcion dada
24
#----------------------------------------
25
# 1era forma
26
def rescale(x):
27
28
out = (x - min(x))/(max(x)-min(x))
29
30
return out
31
32
list( map( lambda x: rescale(x) , vector) )
33
34
# 2da forma
35
def rescale(x,max,min):
36
37
out = (x - min(x))/(max(x)-min(x))
38
39
return out
40
41
map( lambda x, v1 = max(vector), v2 = min(vector): rescale(X,v1, v2) , vector)
42
43
list( map( lambda x, v1 = max(vector), v2 = min(vector): rescale(x,v1, v2) , vector) )
44
45
46
vector1 = (vector - min(vector))/(max(vector)-min(vector))
47
48
# Creamos una matriz de 100x50
49
#------------------------------
50
np.random.seed(15632)
51
X1 = np.random.rand(100)
52
print(X1)
53
X2 = np.random.rand(100)
54
X3 = np.random.rand(100)
55
X4 = np.random.rand(100)
56
X5 = np.random.rand(100)
57
X6 = np.random.rand(100)
58
X7 = np.random.rand(100)
59
X8 = np.random.rand(100)
60
X9 = np.random.rand(100)
61
X10 = np.random.rand(100)
62
X11 = np.random.rand(100)
63
X12 = np.random.rand(100)
64
X13 = np.random.rand(100)
65
X14 = np.random.rand(100)
66
X15 = np.random.rand(100)
67
X16 = np.random.rand(100)
68
X17 = np.random.rand(100)
69
X18 = np.random.rand(100)
70
X19 = np.random.rand(100)
71
X20 = np.random.rand(100)
72
X21 = np.random.rand(100)
73
X22 = np.random.rand(100)
74
X23 = np.random.rand(100)
75
X24 = np.random.rand(100)
76
X25 = np.random.rand(100)
77
X26 = np.random.rand(100)
78
X27 = np.random.rand(100)
79
X28 = np.random.rand(100)
80
X29 = np.random.rand(100)
81
X30 = np.random.rand(100)
82
X31 = np.random.rand(100)
83
X32 = np.random.rand(100)
84
X33 = np.random.rand(100)
85
X34 = np.random.rand(100)
86
X35 = np.random.rand(100)
87
X36 = np.random.rand(100)
88
X37 = np.random.rand(100)
89
X38 = np.random.rand(100)
90
X39 = np.random.rand(100)
91
X40 = np.random.rand(100)
92
X41 = np.random.rand(100)
93
X42 = np.random.rand(100)
94
X43 = np.random.rand(100)
95
X44 = np.random.rand(100)
96
X45 = np.random.rand(100)
97
X46 = np.random.rand(100)
98
X47 = np.random.rand(100)
99
X48 = np.random.rand(100)
100
X49 = np.random.rand(100)
101
X50 = np.random.rand(100)
102
103
104
105
X = 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))
106
print (X)
107
108
#Reescalamos la matriz con la funcion dada
109
#----------------------------------------
110
X_res = np.apply_along_axis(lambda X: (X - min(X))/(max(X)-min(X)),0, X)
111
print (X_res)
112
113
114
#-------------------------------------------------------------------------
115
# Pregunta 3
116
#-------------------------------------------------------------------------
117
118
#args
119
#------
120
121
#Reescalamos el vector con la funcion dada
122
123
# 1era forma
124
def rescalev( *args ):
125
126
minimo = np.min(vector)
127
128
maximo = np.max(vector)
129
130
result = list( map( lambda x: (x-min(x))/(max(x)-min(x)) , vector) )
131
132
return result
133
134
135
rescalev(vector)
136
137
# Estandarizamos el vector
138
139
def standarizev( *args ):
140
141
mean = np.mean(vector)
142
143
std = np.std(vector)
144
145
result = list( map( lambda x: (x- np.mean(x))/np.std(x) , vector) )
146
147
148
return result
149
150
151
standarizev(vector)
152
153
154
#kwargs
155
#------
156
157
def calculator( *list_vars, **kwargs):
158
if ( kwargs[ 'function' ] == "reescale" ) :
159
160
# Get the first value
161
result = np.apply_along_axis(lambda X: (X - min(X))/(max(X)-min(X)),0, X)
162
163
elif ( kwargs[ 'function' ] == "standarize" ) :
164
165
result = np.apply_along_axis(lambda x: (x-x.mean())/x.std(),0, X)
166
else:
167
raise ValueError( f"The function argument {kwargs[ 'function' ]} is not supported." )
168
169
# Mensaje de error por tipo de argumento
170
171
return result
172
173
calculator( X, function = "reescale" )
174
calculator( X, function = "standarize" )
175
176
177
178