Página generada en Oct 17, 2018 8:12:09 AM


Jun 8, 2017

Las 15 principales librerías de Python para la ciencia de datos en 2017

Las librerías que se presentan acontinuación han sido tomadas apartir de la actividad generada en GitHub, Python ha tomado mucha tracción en los últimos años en la industria de Ciencias de la Información, en especial en la creación de algoritmos para la minería de datos e inteligencia artificial.

Bibliotecas principales.

1. NumPy

El paquete más fundamental, en torno al cual se construye la pila de cálculo científico, es NumPy (significa Python Numérico). Proporciona una abundancia de características útiles para operaciones en n-arrays y matrices en Python. La biblioteca proporciona vectorización de operaciones matemáticas en el tipo de matriz NumPy, que mejora el rendimiento y, en consecuencia, acelera la ejecución.

2. SciPy

SciPy es una biblioteca de software para ingeniería y ciencia. Una vez más, se necesita entender la diferencia entre SciPy Stack y SciPy Library. SciPy contiene módulos para álgebra lineal, optimización, integración y estadística. La funcionalidad principal de la biblioteca SciPy se basa en NumPy, y sus arrays hacen uso sustancial de NumPy. Proporciona rutinas numéricas eficientes como integración numérica, optimización, y muchos otros a través de sus submódulos específicos. Las funciones en todos los submódulos de SciPy están bien documentadas.

3. Pandas

Pandas es un paquete de Python diseñado para trabajar con datos "etiquetados" y "relacionales" sencillos e intuitivos. Pandas es una herramienta perfecta para la discusión de datos. Diseñado para manipulación, agregación y visualización de datos rápida y sencilla.

Hay dos estructuras de datos principales en la biblioteca:

"Serie" - 1 dimensión


"Cuadros de Datos", 2 dimensiones

Por ejemplo, cuando se desea recibir un nuevo Dataframe de estos dos tipos de estructuras. Como resultado, recibirá dicho Df agregando una sola fila a un DataFrame pasando una serie:

Aquí está una pequeña lista de cosas que puedes hacer con Pandas:

  • Eliminar y agregar fácilmente columnas de DataFrame
  • Convertir estructuras de datos a objetos DataFrame
  • Manejar los datos que faltan, representa como NaNs
  • Potente agrupación por funcionalidad

Visualización.

4. Matplotlib

Otro paquete de núcleo de SciPy Stack y otra biblioteca de Python que se adapta para la generación de visualizaciones simples y poderosas con facilidad es Matplotlib. Es una pieza de primera clase de software que está haciendo Python (con alguna ayuda de NumPy, SciPy y Pandas) un competidor conocedor de herramientas científicas como MatLab o Mathematica. Sin embargo, la biblioteca es bastante baja, lo que significa que necesitarás escribir más código para alcanzar los niveles avanzados de visualizaciones y generalmente pondrás más esfuerzo que si usas más herramientas de alto nivel, pero el esfuerzo total vale la pena Disparo.

Con un poco de esfuerzo puedes hacer casi cualquier visualización:

  • Parcelas lineales;
  • Gráfico de dispersión;
  • Gráficos de barras e histogramas;
  • Gráficos circulares;
  • Parcelas de tronco;
  • Tramas de contorno;
  • Parcelas de Aliviador;
  • Espectrogramas.

También hay instalaciones para crear etiquetas, grillas, leyendas y muchas otras entidades de formato con Matplotlib. Básicamente, todo es personalizable.

La biblioteca es soportada por diferentes plataformas y hace uso de diferentes kits GUI para la representación de las visualizaciones resultantes. Varios IDEs (como IPython) soportan la funcionalidad de Matplotlib.

También hay algunas bibliotecas adicionales que pueden hacer la visualización aún más fácil.

5. Seaborn

Seaborn se centra principalmente en la visualización de modelos estadísticos; Tales visualizaciones incluyen mapas de calor, los que resumen los datos pero todavía representan las distribuciones globales. Seaborn está basado en Matplotlib y altamente dependiente de eso.

Seaborn.png

6. Bokeh

Otra gran biblioteca de visualización es Bokeh, que está dirigida a visualizaciones interactivas. En contraste con la biblioteca anterior, ésta es independiente de Matplotlib. El foco principal de Bokeh, es la interactividad y hace su presentación a través de navegadores modernos en el estilo de Data-Driven Documents (d3.js).

Bokeh.jpg

7. Plotly

Es más bien una caja de herramientas basada en web para la construcción de visualizaciones, exponiendo APIs a algunos lenguajes de programación (Python entre ellos). Hay algunos gráficos robustos, fuera de la caja en el sitio web plot.ly. Para utilizar Plotly, necesitará configurar su clave de API. Los gráficos serán procesados lado del servidor y se publicará en Internet, pero hay una manera de evitarlo.

Plotly.jpg

Aprendizaje automático.

8. SciKit-Learn

Scikits son paquetes adicionales de SciPy Stack diseñados para funcionalidades específicas como procesamiento de imágenes y facilitación del aprendizaje de máquinas. A este respecto, uno de los paquetes más prominentes es scikit-learn. El paquete está construido en la parte superior de SciPy y hace un gran uso de sus operaciones matemáticas.

El scikit-learn expone una interfaz concisa y consistente a los algoritmos comunes de aprendizaje de máquina (machine learning), facilitando la introducción de Machine Leaning en los sistemas de producción. La biblioteca combina código de calidad y buena documentación, facilidad de uso y alto rendimiento y es un estándar industrial de facto para el aprendizaje automático con Python.

Aprendizaje Profundo - Keras / TensorFlow / Theano

En lo que respecta a Deep Learning, una de las bibliotecas más prominentes y convenientes para Python en este campo es Keras, que puede funcionar bien encima de TensorFlow o Theano.Vamos a revelar algunos detalles sobre todos ellos.

9. Theano

Theano es un paquete de Python que define matrices multidimensionales similares a NumPy, junto con operaciones matemáticas y expresiones. La biblioteca se compila, haciéndola funcionar eficientemente en todas las arquitecturas. Originalmente desarrollado por el Grupo de Aprendizaje Automático de la Universidad de Montreal, se utiliza principalmente para las necesidades de Aprendizaje Automático.

Lo importante a tener en cuenta es que Theano se integra con NumPy en el bajo nivel de sus operaciones. La librería también optimiza el uso de la GPU y la CPU, haciendo que el rendimiento de la computación intensiva de datos sea aún más rápido.

Los ajustes de eficiencia y estabilidad permiten resultados mucho más precisos con valores incluso muy pequeños, por ejemplo, el cálculo de log (1 + x) dará resultados cognoscitivos para valores aún más pequeños de x.

10. TensorFlow

Viniendo de los desarrolladores de Google, es una biblioteca de código abierto de gráficos de flujo de datos de computación, que se afilan para el aprendizaje de la máquina. Fue diseñado para satisfacer los requisitos de alta demanda del entorno de Google para la formación de Redes Neuronales y es un sucesor de DistBelief, un sistema de Aprendizaje de la Máquina, basado en redes neuronales. Sin embargo, TensorFlow no es estrictamente para uso científico en la frontera de Google - es lo suficientemente general para usarlo en una variedad de aplicaciones del mundo real.

La característica clave de TensorFlow es su sistema de nodos multicapa que permite el entrenamiento rápido de redes neuronales artificiales en grandes conjuntos de datos. Esto permite el reconocimiento de voz de Google y la identificación de objetos a partir de imágenes.

11. Keras

Y, por último, echemos un vistazo a los Keras. Es una biblioteca de código abierto para la construcción de redes neuronales en un alto nivel de la interfaz, y está escrito en Python. Es minimalista y directo con alto nivel de extensibilidad. Utiliza Theano o TensorFlow como sus backends, pero Microsoft hace sus esfuerzos ahora para integrar CNTK (Cognitive Toolkit de Microsoft) como un nuevo backend.

El enfoque minimalista en el diseño apuntó a la experimentación rápida y fácil a través de la construcción de sistemas compactos.

Keras es realmente facilitado para empezar y seguir adelante con la creación de prototipos rápidos. Está escrito en Python puro y de alto nivel en su naturaleza. Es altamente modular y extensible. A pesar de su facilidad, sencillez y orientación de alto nivel, Keras sigue siendo lo suficientemente profundo y poderoso como para modelar seriamente.

La idea general de Keras se basa en capas, y todo lo demás se construye a su alrededor. Los datos se preparan en tensores, la primera capa es responsable de la entrada de los tensores, la última capa es responsable de la salida, y el modelo se construye entre ellos.

Procesamiento natural del lenguaje.

12. NLTK

El nombre de este conjunto de bibliotecas significa "Natural Language Toolkit" y, como su nombre indica, se utiliza para tareas comunes de procesamiento de lenguaje natural simbólico y estadístico. NLTK tenía la intención de facilitar la enseñanza y la investigación de la PNL y los campos relacionados (Lingüística, Inteligencia Cognitiva Inteligencia Artificial, etc) y se está utilizando con un enfoque en esto hoy.

La funcionalidad de NLTK permite una gran cantidad de operaciones como el etiquetado de texto, clasificación y tokenizing, identificación de entidades de nombre, creación de corpus tree que revela inter e intra-sentencia dependencias, derivación, razonamiento semántico. Todos los bloques de construcción permiten la construcción de sistemas de investigación complejos para diferentes tareas, por ejemplo, análisis de sentimientos, resumen automático.

13. Gensim

Es una librería de código abierto para Python que implementa herramientas para trabajar con modelos de espacio vectorial y modelado de temas. La biblioteca diseñada para ser eficiente con textos grandes, no sólo en la memoria de procesamiento es posible. La eficiencia se logra mediante el uso de estructuras de datos NumPy y operaciones SciPy ampliamente. Es eficiente y fácil de usar.

Gensim está diseñado para ser utilizado con textos digitales crudos y no estructurados. Gensim implementa algoritmos tales como los procesos jerárquicos de Dirichlet (HDP), el análisis semántico latente (LSA) y la asignación de Dirichlet latente (LDA), así como tf-idf, las proyecciones aleatorias, word2vec y document2vec facilitan el examen de los textos para patrones recurrentes de palabras en el Conjunto de documentos (a menudo referido como un corpus). Todos los algoritmos son sin supervisión - sin necesidad de ningún argumento, la única entrada es el corpus.

Minería de Datos. Estadística.

14. Scrapy

Scrapy es una biblioteca para hacer programas de rastreo, también conocidos como bots de araña, para la recuperación de los datos estructurados, como información de contacto o URL, desde la web.

Es de código abierto y escrito en Python. Originalmente fue diseñado estrictamente para el raspado, como su nombre indica, pero ha evolucionado en el marco completo con la capacidad de recopilar datos de las API y actuar como rastreadores de propósito general.

La librería sigue a la famosa Do not Repeat Yourself en el diseño de la interfaz - le pide a sus usuarios escribir el código general, universal que va a ser reutilizable, por lo que la construcción y la escala de rastreadores grandes.

La arquitectura de Scrapy se basa en la clase Spider, que encapsula el conjunto de instrucciones seguido por el rastreador.

15. Statsmodels

Statsmodels es una biblioteca para Python que permite a sus usuarios realizar la exploración de datos a través del uso de varios métodos de estimación de modelos estadísticos y realizar aserciones y análisis estadísticos.

Entre muchas características útiles son descriptivas y resultan en estadísticas a través del uso de modelos de regresión lineal, modelos lineales generalizados, modelos de elección discreta, modelos lineales robustos, modelos de análisis de series de tiempo, varios estimadores.

La biblioteca también proporciona extensas funciones de trazado que están diseñadas específicamente para su uso en análisis estadístico y ajustadas para un buen rendimiento con grandes conjuntos de datos estadísticos

Fuentes : Google Spreadsheet y activewizards


comentarios proporcionados por Disqus