Hem Personliga finanser Arbetar med grafdata i Python for Data Science - dummies

Arbetar med grafdata i Python for Data Science - dummies

Innehållsförteckning:

Video: Vad jag arbetar med! 2024

Video: Vad jag arbetar med! 2024
Anonim

De flesta datavetenskapare måste arbeta med grafdata vid någon tidpunkt. Python ger dig den funktionen. Föreställ dig datapunkter som är kopplade till andra datapunkter, till exempel hur en webbsida är ansluten till en annan webbsida via hyperlänkar. Var och en av dessa datapunkter är en nod . Noderna ansluter till varandra med länkar .

Inte alla knutpunkter länkar till varje annan nod, så knutpunkterna blir viktiga. Genom att analysera noderna och deras länkar kan du utföra alla möjliga intressanta uppgifter inom datavetenskap, som att definiera det bästa sättet att komma från jobbet till ditt hem med hjälp av gator och motorvägar.

Förstå närliggande matrisen

En adjacencymatris representerar förbindelserna mellan noder i ett diagram. När det finns en anslutning mellan en nod och en annan, indikerar matrisen det som ett värde större än 0. Den exakta representationen av anslutningar i matrisen beror på huruvida grafen är riktad (var anslutningens riktning betyder) eller omriktad.

Ett problem med många onlineexempel är att författarna håller dem enkla för förklaringsändamål. Imidlertid är grafiker i verkligheten ofta enorma och trotsar enkel analys helt enkelt genom visualisering. Tänk bara på antalet noder som även en liten stad skulle ha när man överväger gatu korsningar. Många andra grafer är mycket större, och helt enkelt titta på dem kommer aldrig att avslöja några intressanta mönster. Datavetenskapare ringer problemet med att presentera ett komplext diagram med en närliggande matris a hårboll .

En nyckel för att analysera adjacency matriser är att sortera dem på specifika sätt. Du kan till exempel välja att sortera data enligt andra egenskaper än de faktiska anslutningarna. En graf av gatukopplingar kan innefatta det datum som gatan var senast belagt med data, vilket gör det möjligt för dig att leta efter mönster som leder någon baserat på gatorna som är bäst reparerade. Kort sagt, att göra grafdatan användbar blir en fråga om att manipulera organisationen av den data på specifika sätt.

Använda NetworkX-basics

Att arbeta med diagram kan bli svårt om du måste skriva hela koden från början. Lyckligtvis gör NetworkX-paketet för Python det enkelt att skapa, manipulera och studera komplexa nätverk (eller grafer) struktur, dynamik och funktioner. Du kan också använda paketet för att arbeta med digrafer och multigrafer också.

NetworkX är viktiga för att undvika hela frågan om hårbollar.Användningen av enkla samtal döljer mycket av komplexiteten i att arbeta med grafer och adjacency matriser från vy. Följande exempel visar hur man skapar en grundläggande adjacencymatris från en av de medföljande graderna NetworkX:

import networkx som nx G = nx. cycle_graph (10) A = nx. adjacency_matrix (G) print (A. todense ())

Exemplet börjar genom att importera den nödvändiga paketet. Det skapar sedan ett diagram med hjälp av cycle_graph () mallen. Diagrammet innehåller tio noder. Ringa adjacency_matrix () skapar adjacencymatrisen från grafen. Det sista steget är att skriva ut utgången som en matris, som visas här:

[[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 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 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]]

Du behöver inte bygga din egen graf från början för teständamål. NetworkX-webbplatsen dokumenterar ett antal standardgraftyper som du kan använda, vilka alla är tillgängliga inom IPython.

Det är intressant att se hur grafen ser ut när du genererar den. Följande kod visar grafen för dig.

Plottar den ursprungliga grafen.
import matplotlib. pyplot som plt nx. draw_networkx (G) plt. visa ()

Plot visar att du kan lägga till en kant mellan noderna 1 och 5. Här är koden som behövs för att utföra den här uppgiften med funktionen add_edge ().

Plottar grafillägget.
G. add_edge (1, 5) nx. draw_networkx (G) plt. visa ()
Arbetar med grafdata i Python for Data Science - dummies

Redaktörens val

Hur man lägger till text i en sätter () Funktion i C Programmering

Hur man lägger till text i en sätter () Funktion i C Programmering

När du behöver visa en annan textrad, använd C-programmeringsfärdigheterna för att skapa en annan puts () -funktion i källkoden, som visas i Visa två textlinjer. VISA TILL TEXTFINER # inkludera int main () {sätter ("Hickory, Dickory, Dock,"); sätter ("musen sprang klockan."); returnera (0);} Den andra ...

Förklarar variabler i C-dummies

Förklarar variabler i C-dummies

Variabler är det som gör dina program zooma. Programmering kan bara inte bli gjort utan dem. Så om du inte har introducerats till variabler än, här går du. Valerie Variable är en numerisk variabel. Hon älskar att hålla nummer - vilket nummer som helst; det spelar ingen roll. När hon ser ett lika tecken tar hon ett värde och ...

Redaktörens val

Gör rädsla för din vän - dummies

Gör rädsla för din vän - dummies

Rädsla är lika verklig som mod. Även om värdet av rädsla inte är lika uppenbart som modets värde, har det dess fördelar. Rädsla är din instinkt som säger att du är obehaglig - även om situationen inte kommer att skada dig. Alla har haft den känslan när man hellre drar locket ...

Hur man ökar din självmedvetenhet - dummies

Hur man ökar din självmedvetenhet - dummies

Du kommer att vara med dig själv under en livstid. Ingenting kommer att förändra det faktum. Att lära känna, som att lyssna på och uppskatta själv är avgörande för din sanity. Kanske kommer du till att älska, acceptera och omfamna alla du är, är svår för dig att föreställa dig just nu, men du kan göra ...

Hur man ökar din mentala flexibilitet - dummies

Hur man ökar din mentala flexibilitet - dummies

ÄR flexibel i arbete och relationer är ett tecken på en högpresterande. Medan perfektionister är styva och obehagliga i sitt arbete och hur de interagerar med andra, är högpresterande mer öppna och tillmötesgående. Att vara mer flexibel på jobbet gav Ralph aldrig förslag under brainstorming vid gruppmöten. Han kände att hans lag ...

Redaktörens val

Nätverksadministration: Linux-installation och virtuella konsoler - dummies

Nätverksadministration: Linux-installation och virtuella konsoler - dummies

Linux är i sig ett kommandoradsorienterat operativsystem. Grafiska användargränssnitt - inklusive installationsprogrammets GUI - tillhandahålls av en valfri komponent som heter X Window System. Men medan du arbetar med det grafiska användargränssnittet för installationsprogrammet, håller Linux flera ytterligare kommandorads-konsoler öppna. Normalt behöver du inte ...

Nätverksadministration: Linux-loggning, logg och systemavstängning - dummies

Nätverksadministration: Linux-loggning, logg och systemavstängning - dummies

Alla användare som åtkomst ett Linux-system, lokalt eller över ett nätverk, måste verifieras av ett giltigt användarkonto på systemet. I det följande får du veta hur du loggar in och ut på ett Linux-system och hur du stänger av systemet. Logga in När Linux startar upp visas det ...

Nätverksadministration: Licensserver - Dummies

Nätverksadministration: Licensserver - Dummies

I vissa program kan du köpa nätverkslicenser som gör att du kan installera programvaran på många datorer som du vill, men reglera antalet personer som kan använda programvaran vid en viss tidpunkt. För att styra hur många som använder programvaran, är en särskild licensserver inrättad. När en användare börjar ...