Kazxar Skrevet 24. mars 2013 Del Skrevet 24. mars 2013 Skal lage en graf etter en liste med noen tusen verdier. Kode: from matplotlib import pyplot filename = "data_9.dat" x_list = [] y_list = [] fp = open(filename) for line in fp: var1, var2 = line.split(",") x = float(var1) y = float (var2) x_list.append(x) y_list.append(y) type_of_plot = "r--" pyplot.plot(x_list, y_list, type_of_plot) pyplot.show() x og y er uavhengige verdier. Problemet er at det ikke blir tegnet noen graf, men at det blir tegnet opp som et søylediagram. (Målet er å få regnet ut integralet av grafen). Tilleggsspørsmål: Har noen "korrupte" verdier i datalisten som må fjernes. Disse er merket med "-". Tips om lett måte å fjerne disse på? Lenke til kommentar
Kazxar Skrevet 25. mars 2013 Forfatter Del Skrevet 25. mars 2013 Har fått ordnet graf og korrupte verdier nå, og kommet til ny problemstilling. Variabelen x står for timer, og y står for hastighet (måler hvor mye vann som renner igjennom en turbin). Disse variablene blir jo da lagret i en liste. Er det en enkel mulighet i python for å legge sammen alle variablene i denne listen for så å finne gjennomsnittet? (bump) Lenke til kommentar
ChappyD Skrevet 25. mars 2013 Del Skrevet 25. mars 2013 Har fått ordnet graf og korrupte verdier nå, og kommet til ny problemstilling. Variabelen x står for timer, og y står for hastighet (måler hvor mye vann som renner igjennom en turbin). Disse variablene blir jo da lagret i en liste. Er det en enkel mulighet i python for å legge sammen alle variablene i denne listen for så å finne gjennomsnittet? (bump) list = array( den listen din ) mean = sum(list)/len(list) Lenke til kommentar
snippsat Skrevet 25. mars 2013 Del Skrevet 25. mars 2013 (endret) Posten til ChappyD gir deg gjennomsnittet. Husk dette med integer division i Python 2.x. >>> lst = [1,2,3,4] >>> sum(lst) / len(lst) 2 Hmm skulle ikke dette ha vært 2.5? Hadde det vært float verdier i listen hadde resultatet blitt 2.5 >>> lst = [1.0,2.0,3.0,4.0] >>> sum(lst) / len(lst) 2.5 Greit og bare bruke "from __future__ import division" >>> from __future__ import division >>> lst = [1,2,3,4] >>> sum(lst) / len(lst) 2.5 Python 3.x har forandert litt på dette,med "from __future" henter vi bare "division" opplegget til Python 3.x. Endret 25. mars 2013 av SNIPPSAT Lenke til kommentar
Kazxar Skrevet 25. mars 2013 Forfatter Del Skrevet 25. mars 2013 Takker, skal få sjekket dette iløpet av morgendagen. Det er float verdier, så det skal ikke være noe problem. Lenke til kommentar
slacky Skrevet 7. april 2013 Del Skrevet 7. april 2013 (endret) Foran å bruke from..future..import vil jeg heller annbefale å kaste summen til float, så lenge det ikke er noe som krever veldig stor hastighet (evt. itereres over), for det er relativt dyrt å kaste int til float eller vice versa.. >>> lst = [1,2,3,4] >>> float(sum(lst)) / len(lst) 2.5 Endret 7. april 2013 av warpie Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå