Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Lab2/Lab2_Julia.ipynb
2710 views
Kernel: Julia 1.7.3

Laboratorio 2 - Python

@author: Roberto Mendoza

import Pkg # Pkg.add("LinearAlgebra") # Pkg.add("Random") # Pkg.add("Distributions") # Pkg.add("Statistics") # Pkg.add("DataFrames")
using Random using Statistics using Distributions, LinearAlgebra
""" Se podrá observar que los condiciones, funciones, loops , poseen una estrucutura similar a Python, pero se requiere colocal end al cerrar la estructura del código. """ y = rand(-10:10,10) # 10 números aleatorios entre los enteros de -10 : 10 if mean(y) > 0 dummy =1 print(dummy) else dummy =0 print(dummy) end
0
# v = 2 # v = missing # v = "PUCP" v = true if v isa Int print(v, " es numero entero (no missing)") elseif v isa Missing print(v, " es un missing") elseif v isa String print(v, " es un string") elseif v isa Bool print(v, " es un boolean") else print("Sin resultado") end
true es un boolean

If I have my savings today of S/.1,000.00. How much will my savings be worth in 10 years at an interest rate of 2.5%?

Sy+1=Sy(1+i)S_{y+1} =S_{y}(1+i)
# save S = 1000 # Periods n = 10 # interes rate i = 0.025 year = 1 while year < n S = S * (1+i) year += 1 print( year, " : " ,S, "\n") end
2 : 1025.0 3 : 1050.625 4 : 1076.890625 5 : 1103.812890625 6 : 1131.4082128906248 7 : 1159.6934182128903 8 : 1188.6857536682123 9 : 1218.4028975099175 10 : 1248.8629699476653
#### For Loop ## ages = [21, 23, 25, 24, 20] for age in ages print(age+10, "\n" ) end
31 33 35 34 30
## Loop + if - statement for i in collect(1:50) if i in collect(15:20) nothing # equivalente None python y R else print("Ejecutanto ",i,"\n") #\enter end end ## Loop + break for j in collect(1:100) if j > 20 break end print(j,"\n") end
Ejecutanto 1 Ejecutanto 2 Ejecutanto 3 Ejecutanto 4 Ejecutanto 5 Ejecutanto 6 Ejecutanto 7 Ejecutanto 8 Ejecutanto 9 Ejecutanto 10 Ejecutanto 11 Ejecutanto 12 Ejecutanto 13 Ejecutanto 14 Ejecutanto 21 Ejecutanto 22 Ejecutanto 23 Ejecutanto 24 Ejecutanto 25 Ejecutanto 26 Ejecutanto 27 Ejecutanto 28 Ejecutanto 29 Ejecutanto 30 Ejecutanto 31 Ejecutanto 32 Ejecutanto 33 Ejecutanto 34 Ejecutanto 35 Ejecutanto 36 Ejecutanto 37 Ejecutanto 38 Ejecutanto 39 Ejecutanto 40 Ejecutanto 41 Ejecutanto 42 Ejecutanto 43 Ejecutanto 44 Ejecutanto 45 Ejecutanto 46 Ejecutanto 47 Ejecutanto 48 Ejecutanto 49 Ejecutanto 50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
collect(1:50) # similar range(1,51) - Python, seq(1,50) en R
50-element Vector{Int64}: 1 2 3 4 5 6 7 8 9 10 11 12 13 ⋮ 39 40 41 42 43 44 45 46 47 48 49 50
function calculator(x,y,z) result = x*y*z return result end calculator( 158, 381 ,15)
902970
### return multiple function calculator_square( x, y ) x2 = x * x y2 = y * y result = x2 * y2 return result, x2, "La multiplicación del cuadrado es: $result" # $ equivalente de f-string de python end print( calculator_square(3, 4) ) calculator_square(3, 4)[2]
(144, 9, "La multiplicación del cuadrado es: 144")
9
function calculator(x,y,z) result = x*y*z return result end calculator( 158, 381 ,10) ### return multiple function calculator_square( x, y ) x2 = x * x y2 = y * y result = x2 * y2 return result, x2, "La multiplicación del cuadrado es: $result" end print(calculator_square(3, 4)) calculator_square(3, 4)[3]
(144, 9, "La multiplicación del cuadrado es: 144")
"La multiplicación del cuadrado es: 144"
# #### IF statement and return function calculator_square_2( x, y ) x2 = x * x y2 = y * y result = x2 * y2 if result <= 200 return "Large number. Get only the result variable $result" else return print( "Too large number. Do not return variables!") end end calculator_square_2(0, 4)
"Large number. Get only the result variable 0"
### function y tipo de variable predefinido """ Float output """ function calculator_base_5(x::Int64, y::Float64)::Float64 x2 = x * x y2 = y * y result = x2 * y2 return result end print( calculator_base_5(4, 2.2) ) """ Int output """ function calculator_base_5(x::Int64, y::Float64)::Int64 x2 = x * x y2 = y * y result = floor(x2 * y2) # floor: el entero inferior más cercano return result end calculator_base_5(4, 2.2)
77.44000000000001
77
# #### Function y valore predeterminados de parámetros function transpose_2(M::Matrix , est::Bool = true, z=nothing) if est && isnothing(z) # V y V: V M = transpose(M) A = mean(M, dims = 1) # dims = 1 para aplicar promedio por columna , dim = 2 (aplica el promedio a cada fila) B = std(M, dims = 1) Z = zeros(Float64, size(M,1), size(M,2)) # matrix con elementos tipo Float for i in 1:size(M,2) # cantidad de columnas Z[:,i] = (M[:,i] .- A[i])./B[i] # .- permite realizar operaciones elementos por elemento end return Z elseif !isnothing(z) # ! simbolo de negación en Julia return M*z end end M4 = [[2 2 3 4 5 1];[1 5 5 9 8 2]] transpose_2(M4)
6×2 Matrix{Float64}: -0.566139 -1.26491 -0.566139 0.0 0.113228 0.0 0.792594 1.26491 1.47196 0.948683 -1.2455 -0.948683
transpose_2()
A = mean(M4, dims = 2) # dim =2 aplica la función promedio a cada fila
2×1 Matrix{Float64}: 2.8333333333333335 5.0
## Cuadrado de los elementos de un vector [1, 2, 3, 4, 5.2].^2 ## Diagonal principal de una matriz y raiz cuadrada M2 = [[2 2 3 4 5 1];[2 2 3 4 5 1];[2 2 3 4 5 1];[2 10 3 5 5 1];[2 12 3 4 5 1];[2 11 3 4 20 1]] sum(M2[ diagind(M2) ])
UndefVarError: diagind not defined Stacktrace: [1] top-level scope @ In[1]:9 [2] eval @ .\boot.jl:373 [inlined] [3] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String) @ Base .\loading.jl:1196
M2
6×6 Matrix{Int64}: 2 2 3 4 5 1 2 2 3 4 5 1 2 2 3 4 5 1 2 10 3 5 5 1 2 12 3 4 5 1 2 11 3 4 20 1
## P-value que corresponde a un percentil = 3.5 de la distribución t -student test = 3.5 dist = TDist(4) # 4 grados de libertad Pvalue = 2*(1 - cdf(dist, test))
## Dataframe using DataFrames # recordar install DataFrame
DataFrame(var1 =[2, 2, 3 ,4, 5 ,1], var2 =collect(1:6) )
6×2 DataFrame Row var1 var2 Int64 Int64 ─────┼────────────── 1 │ 2 1 2 │ 2 2 3 │ 3 3 4 │ 4 4 5 │ 5 5 6 │ 1 6

Conocer los inputs de una función en Julia

β^ols\begin{equation} \hat{\beta}_{ols} \end{equation}
transpose_2(M4, false, 2) # Shift + Tab
2×6 Matrix{Int64}: 4 4 6 8 10 2 2 10 10 18 16 4