¿Cuáles son las diferencias entre Pandas y NumPy + SciPy en Python? [cerrado]

Respuestas:

313

pandas proporciona herramientas de manipulación de datos de alto nivel creadas sobre NumPy. NumPy por sí mismo es una herramienta de nivel bastante bajo, similar a MATLAB. pandas, por otro lado, ofrece una amplia funcionalidad de series de tiempo, alineación de datos, estadísticas amigables para NA, métodos de agrupación, fusión y unión, y muchas otras comodidades. Se ha vuelto muy popular en los últimos años en aplicaciones financieras. Tendré un capítulo dedicado al análisis de datos financieros utilizando pandas en mi próximo libro.

Wes McKinney
fuente
216
Deberías haber mencionado que eres el autor principal de los pandas. :) El libro en cuestión: shop.oreilly.com/product/0636920023784.do
Yktula
3
¿Sería justo decir que numpy proporciona principalmente matrices eficientes, mientras que pandas proporciona diccionarios eficientes? (En ambos casos, limitado a un tipo de datos coherente en lugar de forma libre). Para mí (estoy empezando a analizarlo ahora), esto me parece la diferencia subyacente: el manejo de datos emparejados con etiquetas (en 1d, también dictados y 2d aka mesas). La alineación de datos, la unión, etc., todo es posible debido a esto, pero para las personas que no perciben esa diferencia subyacente, ni siquiera está claro qué significan (por ejemplo, ¿qué es la "alineación de datos" de dos matrices numpy?).
Brandyn
66
puede ser una pregunta tonta, pero a qué te refieres con lo NA-friendly statisticsmencionado en tu respuesta.
Adil Abbasi
66
Creo que se refiere a las estadísticas que tienen en cuenta los datos faltantes (NA, "No disponible")
usuario1319128
44
Hilo frío, pero ¿qué pasa con las diferencias de rendimiento en una operación compleja en numpy, por ejemplo, pero simplificada sintácticamente en pandas? ¿Hay un costo de rendimiento para seguir la ruta de sintaxis fácil de alto nivel?
3pitt
59

Los pandas requieren Numpy (y prácticamente todas las herramientas numéricas para Python). Scipy no es estrictamente necesario para los pandas, pero aparece como una "dependencia opcional". No diría que los pandas son una alternativa a Numpy y / o Scipy. Más bien, es una herramienta adicional que proporciona una forma más ágil de trabajar con datos numéricos y tabulares en Python. Puede usar estructuras de datos de pandas, pero puede utilizar libremente las funciones de Numpy y Scipy para manipularlas.

BrenBarn
fuente
4

Los pandas ofrecen una excelente manera de manipular tablas, ya que puede facilitar la agrupación ( agrupando un marco de datos en pandas en Python ) y calcular estadísticas. Otra cosa que es genial en los pandas es la clase Panel que puede unir series de capas con diferentes propiedades y combinarlas usando la función groupby.

iury simoes-sousa
fuente