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

Jewish Funeral Traditions - dummies

Jewish Funeral Traditions - dummies

Judiska begravningar sker vanligen i en synagoge, begravningshem eller på en kyrkogård. Med tradition är judiska begravningar enkla (symboliserar tron ​​att människor är alla lika i döden), men de varierar mycket och har ingen uppsättning liturgi. Att skicka blommor till ett begravnings- eller sorgshem är starkt avskräckt i judendomen. Inte bara kommer ...

Identifiera komplicerade grävande dummies

Identifiera komplicerade grävande dummies

Komplicerat roende är det tekniska namnet som sorgproffs ger till en sorgprocess som sitter fast vid något tillfälle , vilket gör det omöjligt för de förlorade att framgångsrikt starta eller avsluta sorgprocessen. Komplicerat sorg är ofta ett tecken på olösta problem i förhållandet mellan de förlorade och den avlidne som gör det ...

Redaktörens val

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

När du har en anpassad vy för MapController i din iOS-app, måste du berätta för iPad-storyboardet att du laddar in din anpassade vy i stället för en UIViewController. Följ dessa steg: Välj Projekt navigator genom att välja Main_iPad. storyboard och välj sedan View Controller i View Controller - Map Scene i dokumentutskriften. ...

Hur man roterar objekt i din iOS-app - dummies

Hur man roterar objekt i din iOS-app - dummies

Här hittar du hur man rotera en vy (i så fall vrid bilen runt) i din iOS-app. För att göra det uppdaterar du den roterande kodstuben du startade med och ersätter den med den fetstilta koden. - (void) rotera {CGAffineTransform transform = CGAffineTransformMakeRotation (M_PI); void (^ animation) () = ^ () {self. bil. transformera = transformera; ...

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Bör du lägga till en ny anpassad vykontroll till din iOS-app innan du fortsätter till dessa steg. Du behöver fortfarande berätta för storyboardet att du vill att den ska ladda den nya anpassade vykontrollen istället för en UIViewController. Följ dessa steg:

Redaktörens val

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Adobe Creative Suite 5 (Adobe CS5) Illustrator tillåter Du sparar en grafisk stil. En grafisk stil är en kombination av alla inställningar du väljer för ett visst filter eller en effekt i Utseendepanelen. Genom att spara informationen i en grafisk stil lagras du dessa attribut så att du snabbt och enkelt kan tillämpa ...

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

I Adobe Creative Suite 5 (Adobe CS5 ) Illustratör du kan använda markeringsverktyget för att skala och rotera ett valt objekt. Dra begränsningsboxens handtag för att ändra storlek på objektet, eller flytta dig utanför ett handtag och sedan, när markören ändras till en flippig pil (en böjd pil med pilhuvud i båda ändarna), dra till ...

Objekttransformation i Adobe CS5 Illustrator - dummies

Objekttransformation i Adobe CS5 Illustrator - dummies

Verktygen Rotate, Reflect, Scale och Shear i Adobe Creative Suite 5 (Adobe CS5) Illustrator använder alla samma grundläggande steg för att utföra transformationer. Här är fem sätt att transformera ett objekt: en för en godtycklig omvandling och fyra andra för exakta omvandlingar baserat på en numerisk mängd som du anger. Vilkårlig omvandlingsmetod Eftersom detta ...