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! 2025

Video: Vad jag arbetar med! 2025
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

Vad är en Java-karta? - dummies

Vad är en Java-karta? - dummies

Arrays och specialiserade listor gör det möjligt att utföra en fantastisk uppsättning uppgifter med Java. Det finns dock situationer där en Java-applikation behöver något som är mer relaterat till en databas, utan att egentligen ha allt databasbagage (som att behöva köpa en separat applikation). Till exempel kanske du vill kunna ...

Några få saker om Java Math - dummies

Några få saker om Java Math - dummies

Tro det eller inte, datorer - även de mest kraftfulla - Ha vissa begränsningar när det gäller att utföra matematiska beräkningar. Dessa begränsningar är vanligtvis obetydliga, men ibland slår de sig och biter på dig. Här är de saker du behöver se upp för när du gör matte i Java. Helhetsflöde Det grundläggande problemet ...

Vad är recursion i Java Programmering? - dummies

Vad är recursion i Java Programmering? - dummies

Rekursion är en grundläggande programmeringsteknik som du kan använda i Java, där en metod kallar sig för att lösa ett problem. En metod som använder denna teknik är rekursiv. Många programmeringsproblem kan lösas endast genom rekursion, och vissa problem som kan lösas med andra tekniker löses bättre genom rekursion. En av ...

Redaktörens val

4 Måste-inkludera i din blogg sidobardesign - dummies

4 Måste-inkludera i din blogg sidobardesign - dummies

Din bloggens sidofält är viktig fastighet som bör innehålla de element du vill ha mest. När du utformar din blogg sidofält kan du dra från en nästan oändlig lista över sidospårelement. Genom att välja noggrant vad som ska inkluderas (och vad som inte ska inkluderas) kan du ställa in din blogg från andra.

5 Användbara Wordpress Plugins - dummies

5 Användbara Wordpress Plugins - dummies

Om du bloggar på en självhävd plattform med WordPress-programvara, är det dags att anpassa din blogg med plug-ins - programvara som kan "anslutas" till din befintliga WordPress bloggprogramvara. Plug-ins gör det möjligt för dig att göra allt från funktionsbildspel i dina blogginlägg för att ansluta sociala medier till din webbplats. Här är fem användbara ...

7 Sätt att erövra Writer's Block som en Blogger - dummies

7 Sätt att erövra Writer's Block som en Blogger - dummies

Varje bloggare möter författarens block i ett tid eller annan. Om du är den typ av bloggare som sköter innehåll varje dag, kan författarens block vara stäverande. Kan du inte ta en paus för att få ditt skrivande mojo tillbaka? Prova en (eller flera) av dessa sju sätt att slå författarens block för att få dig tillbaka ...

Redaktörens val

10 Stora elektronikkomponentkällor - dummies

10 Stora elektronikkomponentkällor - dummies

Letar du efter några bra källor till dina elektroniska delar? Denna lista ger dig några fleråriga favoriter, både inom och utanför Nordamerika. Denna lista är inte uttömmande. Du hittar bokstavligen tusentals specialutbud för ny och begagnad elektronik. Plus, Amazon och eBay ger virtuella marknadsplatser för alla sorters säljare - ...

Elektronik Basics: Resistance - dummies

Elektronik Basics: Resistance - dummies

I elektronikvärlden är motståndet inte meningslöst. Faktum är att motstånd kan vara mycket användbart. Utan motstånd skulle elektronik inte vara möjligt. Elektronik handlar om att manipulera strömmen av ström, och ett av de mest grundläggande sätten att manipulera strömmen är att minska det genom resistans. Utan motstånd strömmar strömmen oreglerad och där ...

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

För att berätta för BASIC Stamp vad du vill göra i ditt digitala elektronikprojekt måste du programmera det. BASIC Stamp Windows Editor är den programvara som du använder på din dator för att skapa program som kan laddas ner till en BASIC Stamp-mikrokontroller. Denna programvara är tillgänglig gratis från Parallax webbplats. ...