Hjem Personlig finansiering Hvordan man bruger python til at udvikle grafer til datalogi - dummier

Hvordan man bruger python til at udvikle grafer til datalogi - dummier

Indholdsfortegnelse:

Video: Computational Linguistics, by Lucas Freitas 2024

Video: Computational Linguistics, by Lucas Freitas 2024
Anonim

Grafer er nyttige for datavidenskabsfolk. A graf er en gengivelse af data, der viser forbindelserne mellem datapunkter ved hjælp af linjer i Pythopn. Formålet er at vise, at nogle datapunkter vedrører andre datapunkter, men ikke alle de datapunkter, der vises på grafen.

Tænk på et kort over et undergrundssystem. Hver af stationerne forbinder til andre stationer, men ingen enkelt station forbinder alle stationer i metroen. Grafer er et populært datalogisk emne på grund af deres brug i socialmedieanalyse. Når du udfører socialmedieanalyse, afbilder og analyserer du netværk af relationer, såsom venner eller forretningsforbindelser, fra sociale hubs som Facebook, Google+, Twitter eller LinkedIn.

De to almindelige billeder af grafer er ikke-styrede , hvor grafen simpelthen viser linjer mellem dataelementer og rettet , hvor pile føjes til linjeshowet disse data flyder i en bestemt retning. For eksempel overveje en skildring af et vandsystem. Vandet vil i de fleste tilfælde strømme i kun en retning, så du kan bruge en rettet graf til ikke kun at vise forbindelserne mellem kilder og mål for vandet, men også for at vise vandretningen ved hjælp af pile.

Udvikling af uindirekte grafer

En ikke-rettet graf viser simpelthen forbindelser mellem knudepunkter. Udgangen giver ikke retning fra et knudepunkt til det næste. For eksempel, når der oprettes forbindelse mellem websider, er der ingen vejledning. Følgende eksempel viser, hvordan du opretter en uindrettet graf.

import networkx som nx import matplotlib. pyplot som plt G = nx. Graf () H = nx. Grafik () G. add_node (1) G. add_nodes_from ([2, 3]) G. add_nodes_from (rækkevidde (4, 7)) H. add_node (7) G. add_nodes_from (H) G. add_edge (1, 2) (Add) 5, 7), (6, 7)]) G. add_edges_from (H. Kanter ()) nx. draw_networkx (G) plt. show ()

Dette eksempel bygger grafen ved hjælp af en række forskellige teknikker. Det begynder ved at importere Networkx-pakken. For at oprette en ny uindrettet graf kalder koden grafen () -konstruktoren, som kan tage et antal inputargumenter, der skal bruges som attributter. Du kan dog opbygge en perfekt brugbar graf uden at bruge attributter, hvilket er hvad dette eksempel gør.

Den nemmeste måde at tilføje en node på er at kalde add_node () med et node nummer. Du kan også tilføje en liste, ordbog eller rækkevidde () af noder, der bruger add_nodes_from (). Faktisk kan du importere noder fra andre grafer, hvis du vil.

Selvom de noder, der bruges i eksemplet, er afhængige af tal, behøver du ikke bruge numre til dine noder. En node kan bruge et enkelt bogstav, en streng eller endda en dato. Noder har nogle begrænsninger. For eksempel kan du ikke oprette en node ved hjælp af en boolsk værdi.

Noder har ikke nogen forbindelse i starten. Du skal definere forbindelser (kanter) mellem dem. For at tilføje en enkelt kant kalder du add_edge () med numrene på de noder, du vil tilføje. Som med noder kan du bruge add_edges_from () til at oprette mere end en kant ved hjælp af en liste, en ordbog eller en anden graf som input. Her er output fra dette eksempel (din output kan afvige lidt, men skal have de samme forbindelser).

Uregistrerede grafer forbinder knudepunkter sammen for at danne mønstre.

Udvikling af rettede grafer

Du bruger ledede grafer, når du skal vise en retning, fra et startpunkt til et slutpunkt. Når du får et kort, der viser dig, hvordan du kommer fra et bestemt punkt til et andet, er startnoden og slutnoden markeret som sådan, og linjerne mellem disse knuder (og alle mellemknudepunkter) viser retning.

Dine grafer behøver ikke at være kedelige. Du kan klæde dem op på alle måder, så seeren får yderligere oplysninger på forskellige måder. Du kan f.eks. Oprette brugerdefinerede etiketter, bruge bestemte farver til bestemte noder eller stole på farve for at hjælpe folk med at se betydningen bag dine grafer.

Du kan også ændre kantlinjens vægt og bruge andre teknikker til at markere en bestemt sti mellem knuder som den bedre at vælge. Følgende eksempel viser mange (men ikke næsten alle) måder, hvorpå du kan klæde en rettet graf og gøre det mere interessant:

importer networkx som nx import matplotlib. pyplot som plt G = nx. G. Add_node (1, 2) G. add_nodes_from ([2, 3]) G. add_nodes_from (rækkevidde (4, 6)) G. add_path ([6, 7, 8] G. add_edges_from ([(1, 4), (4, 5), (2, 3), (3, 6), (5, 6)]) farver = ['r', 'g', 'g', 'g', 'g', 'm', 'm', 'r'] etiketter = {1: 'Start', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: 'End'} størrelser = [800, 300, 300, 300, 300, 600, 300, 800] nx. draw_networkx (G, node_color = farver, node_shape = "D", with_labels = True, labels = etiketter, node_size = størrelser) plt. show ()

Eksemplet begynder ved at oprette en retningsdiagram ved hjælp af DiGraph () konstruktøren. Du skal bemærke, at NetworkX-pakken også understøtter MultiGraph () og MultiDiGraph () graftyper. Tjek denne liste over alle graftyperne.

Tilføjelse af knudepunkter ligner meget på at arbejde med en uindrettet graf. Du kan tilføje enkelte noder ved hjælp af add_node () og flere noder ved hjælp af add_nodes_from (). Add_path () -opkaldet giver dig mulighed for at oprette noder og kanter på samme tid. Ordren af ​​noder i opkaldet er vigtige. Strømmen fra et node til en anden er fra venstre til højre i listen, der leveres til opkaldet.

Tilføjelse af kanter er meget det samme som at arbejde med en ikke-direkte graf. Du kan bruge add_edge () for at tilføje en enkelt kant eller add_edges_from () for at tilføje flere kanter ad gangen. Imidlertid er rækkefølgen af ​​node numrene vigtig.Strømmen går fra venstre knude til højre knudepunkt i hvert par.

Dette eksempel tilføjer specielle nodefarver, etiketter, form (kun en form bruges) og størrelser til udgangen. Du ringer stadig på draw_networkx () for at udføre opgaven. Men tilføjelse af de viste parametre ændrer grafens udseende. Bemærk, at du skal indstille with_labels til True for at se de etiketter, der leveres af etiketparameteren. Her er output fra dette eksempel.

Brug rettede grafer til at vise retning mellem knuder.

Hvordan man bruger python til at udvikle grafer til datalogi - dummier

Valg af editor

Hvad er nyt i Microsoft Word 2016? - dummies

Hvad er nyt i Microsoft Word 2016? - dummies

Udgivelsen af ​​Microsoft Word i 2016 er funktionel pakket og kan prale af evnen til at forenkle arbejdsgange og forene arbejdsgrupper. Hvad det betyder for dig er, at det er et meget lettere produkt at bruge i forhold til tidligere versioner. Med funktionelle ændringer, der er indbygget i knapper og faner af Word 2016s båndformede proceslinje, har den ...

Word 2010 Tastaturgenveje - Dummies

Word 2010 Tastaturgenveje - Dummies

Word 2010 tilbyder en række nyttige tastaturgenveje til hurtigt at udføre opgaver. Her er nogle genveje til almindelig Word-formatering, redigering og fil- og dokumentopgaver. Word 2010 Formatering Genveje Kommando Genvej Bånd Placering Fed Ctrl + B Startside Fane, Skrifttype Gruppe Kursiv Ctrl + I Startside, Skriftgruppe Understrege Ctrl + U Startside Fane, Skriftgruppe Center Ctrl + E ...

Word 2007 For Dummies Cheat Sheet - dummies

Word 2007 For Dummies Cheat Sheet - dummies

Word 2007 ser anderledes ud, men tilbyder stadig de praktiske Word hæfteklammer som f.eks. tastaturgenveje til at hjælpe dig med at oprette, formatere, indsætte ting i og flytte gennem dine Word-dokumenter. Og Word 2007 tilbyder også et par nye funktioner, der hjælper dig med at håndtere din tekstbehandling med lethed.

Valg af editor

ASVAB Montering af objekter Subtest: Shapes - dummies

ASVAB Montering af objekter Subtest: Shapes - dummies

Mange mennesker kan finde den anden type montering af objekter problem på ASVAB lettere end forbindelsesproblemerne. Denne type problem er meget som et puslespil, medmindre det ikke resulterer i et billede af Frihedsgudinden eller et kort over USA. Der er også en heck of a ...

ASVAB Aritmetisk Reasoning Subtest: Viser Sammenligninger med Ratioer - Dummies

ASVAB Aritmetisk Reasoning Subtest: Viser Sammenligninger med Ratioer - Dummies

Du skal vide, hvordan du arbejde med forhold for den aritmetiske begrundelse subtest af ASVAB. Et forhold viser et forhold mellem to ting. For eksempel, hvis Margaret investerede i hendes tatoveringslokale i forholdet 2: 1 (eller 2 til 1) til hendes forretningspartner Julie, satte Margaret $ 2 for hver ...

ASVAB Auto & Shop Information Undertest: Drilling, Punching og Gouging Tools - dummies

ASVAB Auto & Shop Information Undertest: Drilling, Punching og Gouging Tools - dummies

Nej, det handler ikke om hånd-til-hånd kamp træning fra grundlæggende træning. Imidlertid vil ASVAB teste din viden om, hvor praktisk du er med boring, stansning og gouging-værktøjer. Masters i butikskunst gør ofte huller i det materiale, de arbejder med for at opbygge det perfekte fuglehus (eller hvad de arbejder på). ...

Valg af editor

EMT-eksamen: Sådan arbejder du med et team under et nødsituation

EMT-eksamen: Sådan arbejder du med et team under et nødsituation

Arbejder helt alene som en EMT er ekstremt sjælden. Selv under disse omstændigheder vil du sandsynligvis interagere med andre sundhedspleje- og offentlige sikkerhedsudbydere på et eller andet tidspunkt under et opkald. Mere sandsynligt vil du fungere som medlem af et hold. Det kan være en enkelt partner, et brandmandsbesætningsmedlem eller endda en nødsituation ...

EMT-eksamen: Sådan dokumenterer du dine tilfælde - dummier

EMT-eksamen: Sådan dokumenterer du dine tilfælde - dummier

Til eksamen og i feltet EMT er forpligtet til at dokumentere, hvad du observerede om patienten og miljøet, de resultater, du vurderede, den omhu du gav, og eventuelle ændringer i patientens tilstand, mens du var i din pleje. Dokumentation kan ske enten på papirformularer eller elektronisk med en computer, bærbar computer, ...