¿Cuál es mejor para la manipulación de datos en python: Pandas o SFrame?

Antes de responder a su pregunta, me gustaría expresar rápidamente algunos hechos:

Introducción:

  • Pandas es un paquete de Python independiente (Pandas significa Python Data Analysis)
  • SFrames (abreviatura de marcos escalables) son parte del ecosistema más grande de Graphlab Create

Licencias y tarifas:

  • Puede usar Pandas en aplicaciones comerciales sin cargo
  • Debe comprar una licencia para usar Graphlab Create SFrames para uso comercial. SFrame es de código abierto ahora.

Escalabilidad:

  • Pandas es una estructura de datos en memoria. Esto significa que generalmente no puede almacenar marcos de datos más grandes que la memoria principal (también conocida como RAM) en su máquina
  • SFrame es una estructura de datos fuera del núcleo. Esto significa que puede almacenar virtualmente cualquier marco de datos de tamaño, siempre y cuando no se quede sin espacio en disco y memoria

Dependencias de la biblioteca:

  • Pandas no necesita ningún otro paquete para almacenar datos. No puede hacer mucho modelado de datos con Pandas, necesitará scikit learn u otros paquetes de Anaconda Python Distribution
  • SFrame está estrechamente relacionado con Graphlab Create y, por lo tanto, no necesitará configurar ni instalar nada si está utilizando Graphlab Create. Es autosuficiente para la mayoría de las tareas.

Lenguaje y dependencias de la máquina:

  • Pandas, que yo sepa, funciona tanto en máquinas de 32 bits como de 64 bits.
  • SFrame funciona solo en máquinas de 64 bits.
  • Pandas funciona con Python 2.xy 3.x
  • SFrame funciona solo con Python 2.7

Debido a las tarifas de licencia y algunas otras razones menos importantes, la mayoría de los usuarios no han probado Graphlab Create. Por lo tanto, no apreciamos la inmensa potencia de la pila Python Create de Graphlab.

Ahora, para responder su pregunta directamente, ¿qué debe aprender?

Si es principiante, comience con Pandas y la distribución de Python Anaconda (que incluye scikit learn, numpy, scipy, matplotlib, frasco, etc.). Recomiendo Pandas porque hay muchos más tutoriales y respuestas de stackoverflow disponibles en comparación.

Pero tenga en cuenta que el hecho de que la mayoría de las personas brillantes no hayan probado Graphlab Create no lo convierte en una mala herramienta. Utiliza la herramienta que mejor te funcione.

He utilizado ambos para el aprendizaje automático y realmente me gusta SFrame. Lo usé principalmente en combinación con Graphlab y juntos son un gran equipo.

En comparación con los pandas, es muy fácil y realmente es un placer usarlo. SFrame hace mucho trabajo por usted y brilla con una sintaxis simple y lógica.

No estoy realmente seguro de la licencia. Es mantenido por turi (el creador de graphlab y recientemente adquirido por Apple) y dice que usa una licencia BSD. Mira aquí.

Pandas y SFrame implementan la estructura de datos DataFrame, pero Pandas es una estructura de datos en memoria, mientras que SFrame está fuera del núcleo.

He usado Pandas pero no SFrame, por lo que mi opinión sobre SFrame puede no ser precisa, pero al estar fuera del núcleo, SFrame debe ser capaz de manejar grandes cantidades de datos en comparación con Pandas, pero debe ser más lento en rendimiento en comparación con Pandas.

He usado ambas bibliotecas. SFrame es para discos duros de estado sólido. Puedes escalar con velocidad. Pandas es si quieres trabajar solo con RAM. También puede usar sframes con discos duros normales, pero la velocidad sería muy baja.

Pandas es universalmente popular y hace el trabajo bien, pero si sabe lo que está haciendo y necesita una manipulación de datos de mayor nivel (otras bibliotecas tienden a construirse sobre las principales), SFrame podría ahorrar algo de tiempo en el código .

Nunca utilicé SFrame antes, en lo que respecta a mis requisitos, pandas puede satisfacer todas mis necesidades en lo que respecta a la manipulación de datos

Si su máquina tiene SSD, use SFrame, de lo contrario aumente su ram y use pandas.

More Interesting

¿Necesito implementar modelos de aprendizaje profundo desde cero?

¿Cuáles son algunas aplicaciones del aprendizaje semi-supervisado?

¿Cuáles son los proyectos de aprendizaje automático que puedo hacer para practicar y aprender como principiante?

¿Cuál es la mejor manera de aprender el aprendizaje automático, en línea o sin conexión?

¿Cómo es ser ingeniero de aprendizaje automático en Quora?

¿Cómo puedo encontrar un grupo de estudio para el aprendizaje automático en Hong Kong?

¿Puede un fármaco ser estadísticamente efectivo para toda la población, pero estadísticamente no es efectivo para todas las subpoblaciones (como hombres y mujeres) por separado?

¿Puedes explicar el descenso coordinado en términos simples?

¿Por qué debería usar TensorFlow sobre NumPy o scikit-learn para construir redes neuronales (excepto para CPU o GPU)?

¿Cuál es la diferencia entre la anotación automática de imágenes y la recuperación de imágenes?

¿Cómo son los cursos en edX sobre aprendizaje automático, ingeniería artificial y robótica para el empleo?

¿Cuál puede ser un buen proyecto de curso de 3 meses relacionado con el procesamiento del habla y el aprendizaje automático?

¿Qué piensa Yoshua Bengio sobre los Algoritmos de aprendizaje de Alineación de retroalimentación?

¿Por qué necesitamos RandomForestClassifier cuando DecisionTreeClassifier selecciona la mejor característica en cada división?

¿Debo aprender a desarrollar backend si quiero ser ingeniero de aprendizaje automático?