El año 2020 será recordado como un año singular en la historia occidental y mundial. Desde amenaza de guerra mundial, incendios forestasles de magnitudes nunca antes vistas que prácticamente eliminaron toda la flora y fauna australianas, a una pandemia global que ha causado cientos de miles de muertos alrededor del mundo y ha hecho que implementemos en todas partes protocolos de aislamiento y por lo mismo ha hecho que la economía básicamente se pare en seco.
En COBOL existen dos maneras de llevar a cabo operaciones aritméticas:
Con el verbo COMPUTE Con los verbos ADD, SUBSTRACT, MULTIPLY, DIVIDE, EXPONENT El verbo COMPUTE El verbo COMPUTE
Este verbo o declaración, permite hacer cálculos aritméticos con los símbolos tradicionales (+,-,*,/,**), es un verbo muy eficiente comparado con ADD, SUBSTRACT, MULTIPLY, DIVIDE y EXPONENT. Puede ser utilizado para escribir mas de una operación aritmética en una sóla expresión.
Una variable en COBOL, como en cualquier otro lenguaje de programación reserva una sección de la memoria de la computadora para guardar un cierto tipo de datos. En COBOL, las variables se denominan Nombres de Dato.
Sintaxis de variables Sus nombres pueden tener hasta 30 caracteres, sólo puede contener dígitos, letras el signo menos y el guión bajo, no debe tener el mismo nombre que una palabra reservada en COBOL, no debe contener espacios.
El programa Hello, World es un programa que presenta en pantalla el mensaje “Hello, World”. Es uno de los programas mas simples que se pueden implementar en la mayoría de los lenguajes de programación y es usualmente utilizado para demostrar la sintaxis básica de un lenguaje. Usualmente es el primer programa que hacen los que aprenden a programar en un lenguaje dado y tambien es utilizado como una prueba de sensatez para asegurarse que el compilador y las bibliotecas del lenguaje están correctamente instaladas.
COBOL sigue una estructura fija, la cual está compuesta del programa, sus divisiones, secciones, párrafos, sentencias, declaraciones y caracteres.
Las divisiones son partes del programa que lo dividen lógicamente y son 4:
división de identificación es la primera y única división obligatoria del programa. El párrafo PROGRAM-ID es el único obligatorio, este identifica el nombre del programa y consta de 1 a 30 caracteres.
división de ambiente se utiliza para especificar los archivos de entrada y salida del programa consta de dos secciones:
Introducción La crisis del COVID en Estados Unidos (y alrededor del mundo) ha puesto de manifiesto la relevancia de un lenguaje de programación que se creía muerto, enterrado y olvidado. COBOL Billones de líneas de COBOL son las que mantienen los sistemas de pagos de Defensa, Bancos, la Seguridad Social y muchas otras dependencias gubernamentales y programas sociales.
Breve introducción a COBOL COBOL es un lenguaje de programación enfocado a los negocios, las siglas de COBOL significan COmmon Business Oriented Language.
El Casio GWB-5600 es uno de los mas modernos G-Shock cuadrados que existen en la colección de G-Shock, aunque no tan baratos como el DW-5600E-1V tienen muchas mas funciones, de hecho es una alternativa mucho mas barata a la línea GMWB-5600 o G-Steel la cual es 2.5x veces mas cara. Esta serie son herederos del primer G-Shock el DW-5000 de 1983 y junto con el DW 5035, son parte de las series para conmemorar los 35 años del G-Shock.
CRUD son las siglas para Create, Read, Update, Delete que son las operaciones básicas de una base de datos relacional. Si por alguna razón, nuestra base de datos es un archivo separado por tabs, texto, o enumerado, podemos utilizar AWK para utilizarlo como un sistema sencillo de base de datos. Para esto, tenemos que garantizar que podemos llevar a cabo las operaciones CRUD. Una restricción más que pondremos es que trataremos que el resultado se guarde en el mismo archivo.
AWK puede procesar numéricamente archivos y tiene soporte de todos los operadores aritméticos presentes en C y éstos siguen el mismo orden de precedencia. Estos operadores son: ^, -, +, *, /, %. Como nota, todos los números en AWK se reprsentan como flotantes, por lo que las operaciones de división y multiplicación son las de punto flotante, no las de enteros. El operador módulo tiene la particularidad de que toma el cociente y lo redondea al entero mas bajo y lo multiplica por y y el resultado es restado a la x, en lo que se conoce como trunc-modi manteniendo la siguiente relación.
AWK es un lenguaje de programación y scripting que junto con grep y sed forma parte de lo que hace a Unix/Linux tan poderoso como sistema operativo.
AWK es reconocido por ser un excelente lenguaje para filtrado de registros y creación de reportes. Lo que informalmente lo convierte en un manejador de bases de datos (donde las diferentes tablas se encuentran en diferentes archivos de texto).
La estructura básica de un programa en AWK sigue el siguiente formato:
AWK procesa sus entradas línea por linea, aplicando las acciones al patrón si este es verdadero o si aplica.
{ pattern } { actions } El patrón puede ser tan sencillo o tan complejo como lo podamos hacer, pero una vez encontrada la línea, podemos tener diferentes acciones dependiendo de su valor. Para esto, utilizamos la estructura if.
La declaración de if de awk puede ser de 3 tipos:
if (condicion) { acciones } if (condicion) { acciones } else { otras acciones } if (condicion1) { acciones } else if (condicion2) { otras acciones } Ejemplos, en un log complejo, podemos combinar el patrón básico, con el condicional, if.
AWK cuenta tambien con estructuras de repeticion, además de la estructura de control (if), las estructuras de control que existen en AWK sin: for, do y while y existen ciertas palabras de control quesólo tienen sentido dentro de un ciclo o repetición y estas son: break, next, continue. A continuación veremos como todas estas estructuras y palabras clave se relacionan entre sí.
Ciclo for Existen dos maneras de iterar utilizando ciclos for en AWK, la primera es la tradicional de C.
Hola mundo en GAWK (GNU AWK) es un script muy sencillo que en parte sigue la estructura básica de un programa en AWK, pero abreviada porque las acciones siguentes no son necesarias.
Lo primero que necesitamos es decirle al intérprete de nuestro shell que es un script gawk con la línea: #!/bin/gawk.
Posteriormente usamos un bloque BEGIN este bloque sirve para la inicialización del programa, generalmente aquí se declaran variables de ambiente, separadores de archivos, contadores y demás cosas.
Instalación de GAWK en Linux Para instalar GAWK en sistemas tipo Debian (Ubuntu, Debian, etc…) podemos usar el siguiente comando:
$ sudo apt-get install gawk o la versión un poco mas moderna
$ sudo apt install gawk Instalación de GAWK en MacOS Si utilizamos el sistema de manejo de paquetes Homebrew, podemos utilizar el siguiente comando
$ brew install gawk Instalación de GAWK en Windows Tenemos que bajar los binarios de https://sourceforge.
La detección de oraciones es una de las tareas básicas del NLP, ya que en linguística, la base de los mensajes, es la frase o la oración. Existen muchos idiomas donde las oraciones no tienen ningún tipo de separador entre ellas y aquí el caso es ir de palabra en palabra hasta que se encuentra una idea completa, lo cual es muy difícil, pero en los lenguajes occidentales, podemos en principio, explotar la presencia de puntuación para poder separar oraciones.
El manejo de los formatos de entrada y salida en AWK es una de las cosas mas comunes que se pueden hacer con él, ya que este programa está diseñado para la creación de análisis y reportes.
Para la entrada podemos utilizar la redirección < de Linux o Unix. $ gawk -f inout.awk < input.dat
AWK es un lenguaje interpretado pero está diseñado para recibir argumentos de la terminal, ya sea de archivos de texto o redirecciones de procesos.
AWK tiene diferentes funciones para tratar con números, con cadenas de texto, con la entrada y salida de datos, tiempo, manipulación de bits, arrays, para proveer información sobre tipos y para localización e internacionalización.
Existe además la capacidad de que el usuario defina funciones. La definición de funciones debe seguir la siguiente sintaxis:
function <name>(<parametros>) { acciones return <resultado> } Es importante notar las siguientes cosas:
Es bueno poner el argumento return, en lugar de print, a menos que sea una función para arreglar formatos.
AWK tiene diferentes variables internas que nos son muy útiles y además, podemos declarar nuestras propias variables, ya sea para hacer filtrados, conteos, o resúmenes y reportes.
La lista de variables internas de AWK es la siguiente:
Variables internas Existen diferentes variables internas de AWK
BINMODE: Especifica el modo binario de I/O en sistemas no Unix: 1,2,3 CONVFMT: Controla la conversión de strings a numeros, pasa a sprintf FIELDWIDTHS: Lista de columnas separadas cuando no es delimitada la entrada FPAT: Regex que reconoce los campos para separarlos FS: Separador de los campos de entrada IGNORECASE: Si es no cero o no nulo, las comparaciones son case-indep LINT: Cuando esta varible es verdadera, activa la opción de lint OFMT: Controla la conversión de números a strings OFS: Controla la separador de la salida ORS: Separador de final de línea de cada registro PREC: Precisión en las operaciones de punto flotante ROUNDMODE: Modo de redondeo de números RS: Separador de registros en la entrada SUBSEP: Separador de subscripts en arrays multidimensionales TEXTDOMAIN: Se usa para la internacionalización de programas de AWK ARGC: Número de argumentos de línea de comandos ARGV: Lista de argumentos de línea de comandos ARGIND: índice de ARGV del archivo que está siendo procesado ENVIRON: Array con los valores de las variables de ambiente ERRNO: Guarda el valor del error durante un getline o close FILENAME: Nombre del archivo que está siendo procesado FNR: Número de registro que está siendo procesado NF: Número de campos en el registro que está siendo procesado FUNCTAB: Array con valores de funciones utilizadas NR: Número de registros que awk ha procesado desde el inicio PROCINFO: Array con información sobre el programa de awk RLENGTH: Longitud de la cadena encontrada por un regex RSTART: Indice del substring donde comienza un match RT: Texto que se encuentra usando RS como separador SYMTAB: Array con variables globales y arrays en el programa Variables definidas por el usuario Definir variables en AWK es muy sencillo.
EL etiquetado de temas o topic tagging es un mecanismo automático que es muy utilizado para procesar textos y asignarles un tema o categoría, esto para la clasificación automática, por ejemplo de noticias, artículos científicos o posts de un blog.
Tiene diferentes aplicaciones de negocios para clasificar emails, tickets, reviews, todo el texto que pueda recibir una empresa en sus operaciones.
El etiquetado automático facilita las búsquedas de documentos, escala bien y rápido y puede ser un primer paso en un proceso semi-automatizado o completamente automatizado y en línea de clasificación de textos.
La lematización consiste en remover la inflexión de las palabras de un texto generando una sola forma base. Existen dos niveles de generación de lemas. El stemming es un método en el que todas las palabras son llevadas a una forma base sin tomar en cuenta la parte de la oración a la que se refieren. En el caso del stemming, se obtiene una raíz de un conjunto de palabras relacionadas mediante un conjunto de reglas de producción, las cuales generalmente quitan los sufijos y prefijos.
Parsear, en el contexto del procesamiento de lenguaje natural consiste en encontrar la estructura gramatical de las oraciones. por ejemplo, ver que grupos de palabras van juntas como frases y que palabras o frases son el sujeto, el verbo y el predicado.
El objetivo de un parseo es determinar el árbol del análisis gramatical de una oración dada. Este árbol describe las dependencias entre las diferentes palabras o estructuras gramaticales como frases substantivas, frases adverbiales, sujeto predicado, objetos (directo e indirecto), etc…
Para copiar un DVD como una película o de música una de nuestras mejores opciones es utilizar el software llamado Brasero, este software antes era parte de la distribución estándar de Ubuntu en GNOME pero con el desuso de los DVDs ahora sólo está disponible en el Centro de Software.
Materiales DVD-R Lector y quemador de DVDs DVD fuente Método La metodología es muy sencilla, básicamente es seguir las instrucciones que nos va presentando el programa.
PostGIS es una extensión a PostgreSQL que permite el manejo de variables geográficas y geométricas. Nos permite guardar diversos tipos de datos especializados y realizar operaciones de geoestadística.
A continuación veremos como instalarla en nuestro servidor, instalar la extensión en nuestra base de datos y crear tablas para el manejo de información georreferenciada.
A lo largo del camino hablaremos de algunas cosas necesarias de geometría y geodesia que son importantes para comprender como funciona PostGIS.
El manejo de datos y la conversión de estos datos en flujos accionables por los usuarios, es una de las actividades fundamentales en las ciencias de la computación, la informática, la biblioteconomía y ciencias de la información y la ciencia de datos. En este artículo listaré algunas de las metodologías o conceptos necesarios para ir comprendiendo mejor estos temas de flujo de la información.
Estos conceptos son: el ciclo de la información, el segundo es la tipología de niveles de información y el tercero es el ciclo de desarrollo o metodología de la ciencia de datos.
Drakon es un sistema de programación visual y creación de diagramas creado para el programa espacial Buran en la Unión Soviética.
Es un lenguaje algorítmico visual, que permite ordenar las ideas y pasos de un proyecto o algoritmo. Esta demostrado que el lenguaje es Turing completo y puede expresar cualquier algoritmo. Es un lenguaje definido y formal, tanto que se puede verificar y convertir a cualquier otro lenguaje de programación. Además, existen otros diagramas para definir esquemas de datos, ya sean clases o bases de datos que se pueden utilizar desarrollados por el mismo grupo, estos se definen en un lenguaje llamado ERIL, para mapas mentales, que no lleven involucrada una receta, sólo conceptos, algunos de los criterios estéticos de DRAKON se llevaron a un sublenguaje llamado GRAF.
Muchas veces es necesario tener máquinas virtuales disponibles en nuestros servidores, ya sea para alojar aplicaciones web, existen aplicaciones dedicadas muy fáciles de usar como ProxMox, VMWare o VirtualBox pero, para producción de ambientes virtualizados en Linux, el estándar es Qemu con KVM.
Primero debemos comprobar los requerimientos de nuestro sistema, en este caso vamos a utilizar una distribución basada en Debian o Ubuntu.
Necesitamos saber como está nuestra red para ver las IPs en uso utilizamos el comando:
OpenCv es una biblioteca en C++ la cual es ampliamente utilizada para tareas de visión máquina. Es tan extendida que ya cuenta con traducciones y llamadas en diferentes lenguajes. Uno de los más extendidos es Python, en este artículo voy a detallar un conjunto de operaciones básicas para iniciar el estudio y uso de OpenCV.
Instalación $ sudo apt-get install python-opencv Operaciones básicas con imágenes Para operar con imágenes, lo primero que tenemos que poder hacer es cargarlas en nuestros programas, convertirlas entre diversos formatos, y llevar a cabo operaciones geométricas con ellas, como rotarlas, cambiar el tamaño, invertirlas y hacer transformaciones conformes.
Unir tablas, es una de las tareas fundamentales en la consulta de bases de datos. Todo el concepto de relaciones entre tablas se utiliza para justificar este hecho y toda el álgebra relacional está creada para poder analizar, explicar y justificar matemáticamente la capacidad de unir tablas.
La unión de tablas se define en términos de conjuntos los cuales se relacionan a través de llaves. Estas llaves además pueden ser utilizadas para definir restricciones dentro de las tablas y para indicar el tipo de relación y cardinalidad de ésta dentro del esquema de la base de datos.
La tokenización, es uno de los primeros procesos necesarios en cualquier tarea de Procesamiento de Lenguaje Natural y consiste en la generación de tokens, o entidades individuales, para su análisis posterior. En general los tokenizadores para los lenguajes occidentales utilizan 2 tipos de separadores: espacios y puntuación.
Existen diferentes reglas para tokenizar, dependiendo de lo que queremos hacer, por ejemplo una tokenización sencilla es separar las palabras y que no importe la puntuación.
El procesamiento de lenguaje natural es un área sumamente complicada del aprendizaje máquina, del procesamiento estadístico de datos y de la linguística. Para lo cual se han utilizado técnicas desde el conteo de letras, hasta el desarrollo de complejas redes neuronales.
Una de las técnicas básicas para el procesamiento de lenguaje es el uso de expresiones regulares. Una expresión regular es una cadena de caracteres que describe un patrón. El concepto de las expresiones regulares fue desarrollado por Christopher Kleene junto con el de lenguaje regular.
AWK es un lenguaje de programación muy poderoso para procesar archivos de texto separados con columnas. Una de las tareas básicas con datos columnares es unir los registros basados en algún tipo de llave (como en las bases de datos). Esta unión puede ser utlizando una o varias columnas como llave, además de que hay manera de simular inner joins o outer joins. Para esto vamos a usar un subconjunto del dataset de empleados:
El comando column nos permite representar archivos de texto en forma de columnas, generar tablas, visualizar tablas en la terminal, ocultar columnas y alinear la tabla. Las opciones del comando column son:
-c <n> Formato de la salida al número de columnas de ancho. -s <chr> Especifica un conjunto de caracteres para usar como delimitador para la opción -t. -t Determina el numero de columnas de la entrada y crea una tabla, se usa para dar formato.
AWK es una herramienta muy poderosa y un potente lenguaje de programación con un modelo de datos muy interesante, en el cual se opera sobre archivos y estos archivos son consumidos línea por línea.
Nosotros utilizamos AWK principalmente para extraer columnas, reacomodarlas, o filtrarlas.
Para filtrar filas en AWK lo que necesitamos es comparar con un if Los operadores lógicos en AWK son:
> : mayor que < : menor que >= : mayor o igual <= : menor o igual == : igual !
AWK es un lenguaje de programación interpretado para UNIX y Linux, fue creado en Bell Labs por Aho, Weinberger y Kernigan. Es un lenguaje para generar mapeos y filtros (los dos tipos de operaciones mas importantes para el procesamiento de datos) de manera ráìda y eficiente en la terminal. AWK opera sobre archivos de columnas delimitadas, ya sea mediante espacios, tabuladores o otros separadores.
AWK es muy eficiente en el manejo de archivos grandes por la forma que tiene de operar sobre los archivos, reconoce los diferentes campos en una línea, pero va consumiendo el archivo línea por línea así que es muy difícil que consuma demasiada memoria, ya que nunca guarda el archivo completo en RAM.
Es un hecho interesante y no muy conocido que podemos realizar las operaciones básicas de bases de datos como selección de columnas o uniones con comandos en la terminal. Esto es importante porque muchas veces recibimos dumps de datos enormes y no muy bien estructurados que no podemos alimentar directamente en nuestras bases de datos y que pueden sentar a pandas y a nuestras computadoras por una falta de memoria.
Aquí va una opinión controversial en el mundo de los relojes. A la gente le encantan los relojes mecánicos (me incluyo en este grupo) e incluso hay algunos que desprecian todo lo que tenga que ver con relojes digitales. Es aquí donde difiero. Y como ejemplo pongo al Casio AE-1200WH.
Conocido como el Casio “Royale” por su parecido al Seiko G757 5020 Sports 100 que aparece en Octopussy.
Este Casio es de la línea juvenil de Casio, surgió en 2010, con su hermano el AE-1000W.
En pandas podemos hacer diferentes tipos de operaciones sobre un dataframe, vamos a agruparlas en las siguientes:
Extracción de columnas Operaciones sobre columnas Creación de índices Extracción de columnas A veces necesitamos un subconjunto de las columnas para generar un modelo o un reporte, para esto podemos utilizar diferentes métodos:
Método 1: listar las columnas por nombre >>> df_sc = df[['col1', 'col2', 'col5']] Método 2: listar las columnas en un rango >>> df_sc = df.
(Del lat. tempus).
m. Duración de las cosas sujetas a mudanza. m. Magnitud física que permite ordenar la secuencia de los sucesos, estableciendo un pasado, un presente y un futuro. Su unidad en el Sistema Internacional es el segundo. m. Parte de esta secuencia. medio.
m. Fís. El que se mide por el movimiento uniforme de un astro ficticio que recorre el Ecuador celeste en el mismo tiempo que el Sol verdadero la Eclíptica.
Hubo una época, en la cual la clasificación de los barcos de guerra era relativamente sencilla. Ya que se hacía por tamaño y número de cañones, este esquema surgió en el siglo XVIII con la marina británica, la cual instituyó un sistema de rangos para las naves basado en el número de cañones que llevaban.
Primer rango: los buques con entre 100 y 120 cañones cañones. Segundo rango: los buques entre 90 y 98 cañones Tercer rango: los buques entre 64 y 80 cañones Cuarto rango: 50 a 60 cañones Quinto rango: 32 a 44 cañones Sexto rango: 20 a 28 cañones Sin rango: 4 a 18 cañones Los primeros cuatro rangos son los barcos de línea, que en la época napoleónica luchaban juntos en una línea de batalla soltando andanadas, mientras que los barcos de quinto y sexto rango, son denominados fragatas, y los que no tienen rango incluyen cañoneras, corbetas y patrulleras.
Muchas veces los clientes o las fuentes de datos abiertas tienen sus datos en formatos ya arcaicos, como pueden ser archivos DBF o MDB.
Breve descripción de los formatos El formato MDB El formato MDB es un formato de bases de datos utilizado por Microsoft Access.
El formato DBF Este formato era utilizado por Visual Fox Pro, dBase, Microsoft Access, Microsoft Excel y algunas otras aplicaciones generadas con estos programas.
Flask es un web framework en Python que da las capacidades mínimas de creación de aplicaciones web, se le denomina un framework mínimo porque sólo provee la funcionalidad mínima para operar un servicio web y en general la mayor parte de las diferentes funcionalidades puede ser manejada con paquetes externos o extensiones. Existen diferentes tipos de aplicaciones web que se pueden generar con Flask, ya sean APIs RESTful que sirvan JSON, aplicaciones web sencillas que sirvan sólo HTML, o aplicaciones web completas que se comuniquen a bases de datos o sistemas de archivos y generen HTML.
Las vistas son pseudo tablas que se pueden utilizar para restringir el acceso a la información para ciertos usuarios, para conjuntar datos de distintas tablas, para generar reportes. Las vistas a pesar de no ser tablas reales se comportan como tales ante la selección, pero no pueden ser actualizadas, borradas o se les pueden hacer inserciones de la manera convencional. Las vistas tienen sus propios permisos, lo que significa que los usuarios no tienen por que interactuar con los datos originales y pueden seleccionar sólo un subconjunto de las tablas ya sea por filas o por columnas.
JSON o Javascript Object Notation es un formato de archivo que permite la representación de objetos complejos en el lenguaje de programación Javascript, lo que lo convierte en un estándar de facto para la compartición de datos entre aplicaciones web, APIs y aplicaciones móviles y de escritorio. Muchas veces, es importante obtener el resultado de una llamada a un API y almacenarlo directamente en la base de datos para su posterior análisis o utilización, o es importante que el resultado de una consulta quede formulado directamente en JSON desde el servidor de base de datos sobre todo si nuestra aplicación web cuenta con menos recursos para formatear las respuestas y servir la aplicación.
Aunque las reglas de normalización nos dicen que debe haber un solo dato por celda, existen muchos tipos de datos secuenciales que pueden ser almacenados en arreglos ya sea por comodidad o por los requerimientos lógicos. Valores como la ubicación, coordenadas de moléculas, arreglos de colores de de imágenes, tags de posts de blog. Los arreglos en postgres permiten guardar estos datos secuenciales.
Es interesante que postgres permite crear arrays de todos los tipos básicos, e incluso de los tipos de datos definidos por el usuario.
Postgres permite a los usuarios extender los tipos de datos tradicionales con otros definidos, a partir de valores compuestos. esto se puede hacer a través de dos comandos diferentes CREATE DOMAIN y CREATE TYPE.
A continuación analizaremos el uso de ambos y las circunstancias en las que conviene aplicar uno u otro.
CREATE DOMAIN En PostgreSQL un dominio es un tipo de datos con restricciones opcionales como NOT NULL, CHECK etcétera.
Introducción La aritmética de fechas es una de las ramas que en general causa mas problemas a los programadores tanto de bases de datos como de aplicaciones de negocios.
Es muy importante en este tipo de aplicaciones tomar en cuenta plazos, diferentes zonas horarias, fines de semana, feriados.
Tipos de datos de fechas y horas en PostgreSQL Lo primero que necesitamos saber son los tipos de datos disponibles para el tratamiento de las fechas y de los intervalos de tiempo.
Un README es un archivo que entre otras cosas indica para que es el programa, como se instala, como se usa y algunos ejemplos.
Un poco de historia de los READMEs En la época que todo el software era empresarial o creado por las universidades la documentación era amplia y muy formal siguiendo estándares como el MIL STD 498, que siguen siendo muy útiles, pero para muchos proyectos pequeños son demasiado vastos.
Este artículo es parte de nuestra serie de ciencia de datos con Python y Pandas, una vez que hemos aprendido como manipular series y dataframes lo que sigue es que podamos analizar nuestros datos y lo primero que necesitamos saber es la estadística descriptiva, o los conteos que nos dirán como se comporta de la manera mas básica nuestra muestra.
La primera función que veremos es la función describe() Esta función genera un dataframe con la media, la desviación estándar y los valores entre cuartiles de las columnas.
Que lleva un doctring? Un doctring es la cadena de documentación que tiene cada módulo, clase y función en python y que podemos ver con el comando doc o el comando help. EStas cadenas fueron hechas por los programadores de los módulos para que de un vistazo rápido otros programadores puedan comprender y utilizar su código.
El estándar que sugiere la mejor manera de utilizar los doctrings en python es el PEP 257 y fue creado por Guido van Rossum, el creador del lenguaje, junto con David Goodger.
Un poco de historia El estandar PEP 8 es un documento que provee guías y mejores práacticas sobre como esccribir código Python. Fue creado en 2001 por Guido van Rossum, Barry Warsaw y Nick Coghlan. El énfasis principal del documento es documentar prácticas para mejorar la legibilidad y consistencia del código Python.
Contenidos El documento da convenciones utilizadas para escribir código python de calidad, define una cadena de prioridades para generar el código (primero va el estándar del proyecto, luego el estándar del lenguaje), posteriormente vienen las recomendaciones, las cuales son de tipo estilístico para mantener un estilo consistente y evitar problemas con versiones, con codificaciones de archivos, y en general como debe verse el código python.
En esta nueva serie vamos a comentar brevemente algunnas de las mejores prácticas para ir mejorando como un programador. Esta serie de artículos incluirá varios artículos enfocados a Python principalmente sobre:
linting El estándar PEP-8 Qué poner en un docstring? READMEs Motivación Un problema generalizado al hacer un desarrollo compartido, ya sea en la empresa o un equipo, es la inconsistencia en el formato del código la cual en algún momento puede llevar a errores y bugs.
En esta serie de artículos, revisamos los conceptos básicos de la programación de bases de datos con PostgreSQL, el artículo anterior vimos como llevar a cabo selecciones y modificaciones básicas sobre tablas. Pero, la gran ventaja de utilizar bases de datos relacionales es precisamente la capacidad de generar, definir y explotar relaciones entre las entidades que ocupan la tabla.
Existen diferentes casos para la creación de llaves primarias y foráneas. Estos casos dependen en general de si la tabla existe previamente o no.
PostgreSQL es uno de los sistemas de administración de bases de datos de código libre y abierto más versátiles y poderosos en el mercado actual. Históricamente Postgres desciende de un sistema llamado Ingres el cual es un sistema de bases de datos desarrollado en los años 70 en la Universidad de California en Berkeley por Michael Stonebraker y Eugene Wong. El sistema comenzó a tener soporte SQL en 1994 bajo el nombre Posgres95 y desde entonces ha ido acercándose al estándar SQL sin perder su propia identidad.
En los artículos anteriores vimos diferentes maneras de crear series con pandas, vimos diferentes maneras de operar sobre las series, modificarlas tanto por elemento, como en rangos como aplicar funciones sobre todos los elementos. Ahora veremos como generar dataframes. Tanto a partir de datos, como apartir de series.
Introducción a los dataframes Los dataframes son la estructura de datos mas común y mas versátil de pandas, son el equivalente de data.
En el artículo anterior vimos diferentes maneras de crear series con pandas, ahora vamos a ver diferentes maneras de operar sobre las series, modificarlas tanto por elemento, como en rangos como aplicar funciones sobre todos los elementos.
Extender una serie Para extender una serie podemos tomar el último valor del índice de la serie y declarar un elemento con ese índice:
myseries = pd.Series(data=[10,20,30,40], index=[0,1,2,3]) maxidx = s.index[-1] s[maxidx+1] = 50 Concatenar series Muchas veces no queremos añadir un solo elemento, aparte de que esto es ineficiente, es un proceso lleno de errores, lo mejor si vamos a insertar varios elementos es recolectarlos en una lista o diccionario y juntarlos al final de la lista.
Pandas es un módulo de python para hacer análisis estadístico, este es un proyecto de software de código libre y abierto, con una licencia tipo BSD.
Pandas provee estructuras de datos rápidas, flexibles y expresivas para el manejo de datos en tablas para análisis estadístico. Pandas está bien equipado para manejar datos tabulares con columnas de diferentes tipos de datos, series de tiempo ordenadas y desordenadas (con frecuencias de muestreo variables), matrices arbitrarias de datos con diferentes tipos de conjuntos de datos observacioneales.
En el uso de bases de datos una de las tareas mas importantes es generar consultas que sean eficientes y rápidas. Esto puede hacer que las consultas y por consiguiente las aplicaciones se aceleren de manera dramática, en un caso, conseguimos la atención de un cliente al acelerar una consulta sobre todo el universo de manzanas geográficas de México.
Lo primero que debemos hacer es medir, para saber cual es nuestra línea base y para esto vamos a utilizar la herramienta pgbench esta herramienta se instala desde aqui.
Una de nuestras tareas mas frecuentes a la hora de desarrollar aplicaciones es la creación de bases de datos, ya sean aplicaciones especializadas para fármacos, aplicaciones georreferenciadas, o algoritmos de aprendizaje máquina que se re-entrenan periódicamente o tiendas en línea, la gran mayoría de las aplicaciones utilizadas hoy en día requieren el uso de bases de datos para el almacenamiento de las oepraciones o para almacenar los datos necesarios para mostrar a un usuario.
En general, cuando recibimos un conjunto de datos es muy importante saber y tener claras a lo largo del proyecto varias cosas. Estas en general son parte importante de los datos.
La primera es un manifiesto de entrega, nombre y número de archivos y fecha de recepción de cada archivo
archivo | fecha de recepción ------------|-‐------------------- file1.csv | 2018-12-10 file2.csv | 2018-12-10 ... TOTAL | 12 es necesario saber el número de columnas y su tipo (texto,numérico, caracter, fecha, etc…) y los nombres de las columnas por archivo.
Tipos de aplicaciones:
Sistemas de administración de bases de datos Visualizadores de bses de datos Módulos python de ciencia de datos Módulos python de visualización Módulos python de desarrollo web Servidor web Librería y compilador para aplicaciones de escritorio Sistemas de administración de bases de datos PostgresQL Nuestra elección de manejador de base de datos por excelencia, es uno de los mejores que existen, muy utilizado y es la base de redshift el sistema de data warehousing de Amazon.
El procesamiento de lenguaje natural es una subrama de la linguística, ciencias de la computación, ingeniería de la información e inteligencia artificial que se ocupa de las interacciones entre las computadoras y los humanos utilizando lenguaje natural (como el inglés o el francés), en particular como utilizar computadoras para procesar y analizar grandes volúmenes de datos en lenguaje natural.
Los retos en el procesamiento de lenguaje natural frecuentemente involucran reconocimiento de voz, comprensión de lenguaje natural y generación de lenguaje natural.