Skip to content
/ mpss Public
forked from fabianabarca/python

Modelos Probabilísticos de Señales y Sistemas

License

Notifications You must be signed in to change notification settings

mahdzu/mpss

 
 

Repository files navigation

mpss - Modelos Probabilísticos de Señales y Sistemas

Estos son los archivos ejecutables tipo "notebook" de Jupyter, que llamaremos PyX, y que acompañan los subtemas del curso. Son una introducción a Python como lenguaje de programación y la presentación de algunas de sus herramientas más importantes para utilizar en problemas relacionados con la probabilidad, la estadística y el manejo de datos.

Lista de tutoriales

Estos son los temas que son o serán cubiertos por cada archivo (trabajo en progreso).

Nombre Tema
Py0 Introducción a Python
Py1 Funciones y librerías estándar de Python
Py2 Librerías de computación científica
Py3 Librerías de manipulación de datos I
Py4 Introducción al módulo de funciones estadísticas
Py5 Curvas de ajuste de datos
Py6 Módulo de estadística para cálculo de momentos
Py7 Graficación avanzada
Py8 Simulaciones aleatorias
Py9 Librerías de manipulación de datos II
Py10 Programación orientada a objetos I
Py11 Programación orientada a objetos II
Py12 Programación orientada a objetos III
Py13 Documentación de código
Py14 Formatos de intercambio de datos
Py15 Conexión con bases de datos externas
Py16 Módulo de análisis espectral
Py17 Interfaces gráficas de usuario de Python
Py18 Graficación avanzada HTML
Py19 TBD
Py20 TBD

Algunos consejos de la Guía de estilo para código de Python (PEP 8)

PEP 8 es una guía para que el código escrito en Python tenga una consistencia agradable a la vista. Pueden hacer lectura completa en la página oficial de PEP 8.

Aquí mostraremos solamente la síntesis de unas cuantas recomendaciones que serán regla para el curso.

Cosas que fastidian (pet peeves)

  • Evitar espacios en blanco en medio de paréntesis redondos o cuadrados, o llaves.

Correcto

spam(ham[1], {eggs: 2})

Incorrecto

spam( ham[ 1 ], { eggs: 2 } )
  • Evitar espacios en blanco entre una coma final y un paréntesis cerrado siguiente:

Correcto

foo = (0,)

Incorrecto

bar = (0, )
  • Evitar espacios en blanco inmediatamente antes de una coma, punto y coma o dos puntos:

Correcto

if x == 4: print x, y; x, y = y, x

Incorrecto

if x == 4 : print x , y ; x , y = y , x
  • A pesar de lo anterior, en un segmento los dos puntos actúan como un operador binario y debe tener cantidades iguales en ambos lados:

Correcto

ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
ham[lower:upper], ham[lower:upper:], ham[lower::step]
ham[lower+offset : upper+offset]
ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]
ham[lower + offset : upper + offset]

Incorrecto

ham[lower + offset:upper + offset]
ham[1: 9], ham[1 :9], ham[1:9 :3]
ham[lower : : upper]
ham[ : upper]
  • Evitar espacios en blanco inmediatamente antes del paréntesis abierto que inicia la lista de argumentos de una llamada de función:

Correcto

spam(1)

Incorrecto

spam (1)
  • Evitar espacios en blanco inmediatamente antes del paréntesis abierto que comienza una indexación o corte:

Correcto

dct['key'] = lst[index]

Incorrecto

dct ['key'] = lst [index]
  • Evitar más de un espacio alrededor de un operador de asignación (u otro) para alinearlo con otro:

Correcto

x = 1
y = 2
long_variable = 3

Incorrecto

x             = 1
y             = 2
long_variable = 3

Otras recomendaciones

  • Evitar dejar espacios en blanco en cualquier lugar. Debido a que generalmente es invisible, puede ser confuso para algunos editores de texto.

  • Siempre rodear estos operadores binarios con un solo espacio a cada lado: asignación (=), la asignación aumentada (+=, -=, etc.), las comparaciones (==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleans (and, or, not).

  • Si se utilizan operadores con diferentes prioridades, considerar agregar espacios en blanco alrededor de los operadores con las prioridades más bajas:

Correcto

i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)

Incorrecto

i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
  • No usar espacios alrededor del signo = cuando se usa para indicar un argumento de palabra clave, o cuando se usa para indicar un valor predeterminado para un parámetro de función:

Correcto

def complex(real, imag=0.0):
    return magic(r=real, i=imag)

Incorrecto

def complex(real, imag = 0.0):
    return magic(r = real, i = imag)
  • Las declaraciones compuestas (declaraciones múltiples en la misma línea) generalmente no se aconsejan:

Correcto

if foo == 'blah':
    do_blah_thing()
do_one()
do_two()
do_three()

Incorrecto

if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()

Comentarios

El código, desde un inicio, estará comentado ampliamente.

Los comentarios tendrán el siguiente formato:

  • Una línea en blanco encima (excepto si siguen la norma de docstrings)
  • Un espacio entre # y la primera letra
  • Primera letra mayúscula
  • Texto en español con toda la puntuación y acentos necesarios (el código fuente de Python acepta UTF-8, entre otras codificaciones internacionales)

Ejemplo

import numpy as np
from scipy import stats

# Número de muestras
N = 500

# ¿Variable aleatoria de la simulación?
X = stats.norm(0, 1)

About

Modelos Probabilísticos de Señales y Sistemas

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 95.0%
  • HTML 5.0%