Trabajando con los datos del gráfico en python para la ciencia de datos

Video: Python: Gráficas, Ajuste de Datos, Lectura de datos (Pandas, mathplotlib, Numpy, SciPy)

La mayoría de los científicos de datos deben trabajar con los datos del gráfico en algún momento. Python le da esa funcionalidad. Imagínese puntos de datos que están conectados a otros puntos de datos, por ejemplo, cómo una página Web está conectado a otra página web a través de hipervínculos. Cada uno de estos puntos de datos es una nodo. Los nodos se conectan entre sí usando campo de golf.

No todos los nodos enlaces a todos los demás nodos, por lo que las conexiones de nodos se vuelven importantes. Mediante el análisis de los nodos y sus enlaces, se pueden realizar todo tipo de tareas interesantes en la ciencia de datos, tales como la definición de la mejor manera de llegar del trabajo a su casa con calles y carreteras.

La comprensión de la matriz de adyacencia

Un matriz de adyacencia representa las conexiones entre nodos de un grafo. Cuando hay una conexión entre un nodo y otro, la matriz indica como un valor mayor que 0. La representación precisa de conexiones en la matriz depende de si el gráfico está dirigida (donde la dirección de los asuntos de conexión) o no dirigida.

Un problema con muchos ejemplos en línea es que los autores a mantener sencilla con fines explicativos. Sin embargo, los gráficos del mundo real son a menudo inmenso y desafían un análisis fácil simplemente a través de la visualización. Basta con pensar en el número de nodos que incluso una pequeña ciudad tendría la hora de considerar las intersecciones de calles. Muchos otros gráficos son mucho más grandes, y simplemente buscando en ellos nunca se revelará ningún patrones interesantes. científicos de datos llaman el problema en la presentación de cualquier gráfico complejo usando una matriz de adyacencia de una bola de pelo.

Una clave para el análisis de matrices de adyacencia es que los clasifique de manera específica. Por ejemplo, usted puede optar por ordenar los datos de acuerdo con propiedades distintas de las conexiones reales. Una gráfica de las conexiones de la calle podría incluir la fecha de la última calle estaba pavimentada con los datos, por lo que es posible que usted pueda buscar patrones que dirigen a alguien sobre la base de las calles que se encuentran en la mejor reparación. En resumen, por lo que los datos del gráfico útil se convierte en una cuestión de la manipulación de la organización de que los datos de una manera específica.

El uso de conceptos básicos NetworkX

Trabajar con gráficos podría llegar a ser difícil si tiene que escribir todo el código desde cero. Afortunadamente, el paquete NetworkX para Python hace que sea fácil de crear, manipular y estudiar la estructura, la dinámica y las funciones de las redes complejas (o gráficos). Puede utilizar el paquete para trabajar con dígrafos y multigrafos también.

El énfasis principal de NetworkX es evitar todo el tema de las bolas de pelo. El uso de las llamadas simples oculta gran parte de la complejidad de trabajar con gráficos y matrices de adyacencia de vista. El siguiente ejemplo muestra cómo crear una matriz de adyacencia básico a partir de uno de los gráficos suministrados-NetworkX:

importar NetworkX como NXG = nx.cycle_graph (10) A = nx.adjacency_matrix (G) de impresión (A.todense ())

El ejemplo comienza por importar el paquete requerido. A continuación, crea un gráfico utilizando la cycle_graph () modelo. El gráfico contiene diez nodos. Vocación matriz de adyacencia() crea la matriz de adyacencia de la gráfica. El paso final es imprimir la salida como una matriz, como se muestra aquí:

[[0 1 0 0 0 0 0 0 0 1] [1 0 1 0 0 0 0 0 0 0] [0 1 0 1 0 0 0 0 0 0] [0 0 1 0 1 0 0 0 0 0] [ 0 0 0 1 0 1 0 0 0 0] [0 0 0 0 1 0 1 0 0 0] [0 0 0 0 0 1 0 1 0 0] [0 0 0 0 0 0 1 0 1 0] [0 0 0 0 0 0 0 1 0 1] [1 0 0 0 0 0 0 0 1 0]]

Usted no tiene que construir su propio gráfico desde cero para propósitos de prueba. los El sitio NetworkX documenta una serie de tipos de gráficos estándar que se pueden utilizar, todos los cuales están disponibles dentro de IPython.

Es interesante ver cómo se ve el gráfico vez lo haya generado. El código siguiente muestra el gráfico para usted.

Trazando el gráfico original.
Trazando el gráfico original.
matplotlib.pyplot importación como pltnx.draw_networkx plt.show (G) ()

El gráfico muestra que se puede añadir un borde entre los nodos 1 y 5. Aquí está el código necesario para realizar esta tarea mediante la add_edge () función.

Trazado de la adición gráfico.
Trazado de la adición gráfico.
G.add_edge (1,5) nx.draw_networkx (G) plt.show ()
Artículos Relacionados