Code Monkey home page Code Monkey logo

mpss's Introduction

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)

mpss's People

Contributors

fabianabarca avatar jonixrojas avatar ecg97 avatar kellymorat avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.