Dette er en samling med nyttige huskeregler for Python¶
Huskeregel nr 1: Det er ikke meningen at du skal måtte huske hvordan alle funksjoner fungerer!!
Huskeregel nr 2: Det er nesten alltid noen som har lurt på det du lurer på allerede.
Generelle regler¶
Bruk
Shift+Enter
for å kjøre en celle og gå ned til neste celle, ogCtrl+Enter
for å kjøre cellen og bli i samme celle.alt med
#
foran blir ignorert i kodenTekstblokkene er også celler som kan kjøres med disse kommandoene, men det eneste som skjer er at teksten formatteres.
Husk å kjøre cellene i kronologisk rekkefølge.
For å lage nye celler for å lage en variabel eller gjøre en beregning kan du enten trykke på
+
-tegnet oppe til venstre, eller du kan trykkeEsc+b
for en ny celle under den du er i, ellerEsc+a
for en ny celle over den du står i.For å lage en kodecelle om til en tekstboks som dette trykker du
Esc+m
. m står for "markdown" som betyr tekstcelle.string
er navnet på tekst. Putt hermetegn rundt tekst for at python skal tolke det som en string. I f.eks.color='orange'
er'orange'
en string fordi den har''
rundt seg.float
oginteger
er navnet på desimaltall og heltall.Integer = heltall
Float = desimaltall
Variabler
- For å lage en variabel
x
skriver du f.eks.x=4
. Hvis du vil se innholdet ix
kan du skrivex
på bunnen i en celle du kjører, ellerprint(x)
hvor som helst i cellen. Hvis du kun skriverx=4
og kjører cellen er variabelen laget selv om du ikke ser et output.
Hva er en "sti"?¶
- "Stien" til en fil eller en mappe beskriver hvor på PCen din du finner filen eller mappen.
- Har du for eksempel en mappe "Documents" på C-disken som inneholder en annen mappe "Oppgaver" som inneholder en fil "nedbør_data.txt" vil stien til filen "nedbør_data.txt" være "C:/Documents/Oppgaver/nedbør_data.txt"
- Denne stien vil vi trenger hvis vi skal laste datasettet "nedbør_data" inn i Python for å jobbe med dataene.
- Siden vi trenger stien til filer (og i blant funksjoner) for å laste dem inn, trenger vi også å vite hvor på PCen vi har lagt filene våre.
- I Windows står alltid stien til mappen man er i helt øverst i filutforskeren.
Indeksering¶
Man bruker klammeparanteser
[]
rundt indekser.Første indeks er alltid 0. Har du f.eks. listen
x=[5, 12, 4, 7, 3, 0]
vilx[0]=5
.Skal man ha tak i mer enn et, men ikke alle, elementene i
x
skriver manx[a:b]
. Dette betyr elementa
til men ikke medb
.x[1:4]
blir for eksempel[12, 4, 7]
.Den siste indeksen du oppgir blir ikke med i resultatet: skriver du
x[2:5]
velger du ut element 2 til MEN IKKE MED element 5.x[2:5]=4, 7, 3
.Man kan telle baklengs fra slutten av et array: Det siste elementet har indeks
-1
. Det nest siste har indeks-2
.Hvis du kun vil bruke de tre første elementene i x, så skriver du
x[:3]
.Hvis du kun vil bruke de to siste elementene i x, så skriver du
x[4:]
. Siden man kan telle baklengs kan man også skrivex[-2:]
for de to siste elementene ix
.Indekser MÅ være integers - altså det kan ikke være noen desimaler, og det holder ikke at desimalen er 0.
[start:stop:step]
: Man kan velge ut verdier fra et array med et fast intervall. Vil du ha annenhver verdi frax
skriver dux[::2]
. Dette betyr fra start til slutt, hver andre verdi. De to kolonene på rad ser litt rart ut, men dette er for å spesifisere at både start og slutt skal med.Man kan indeksere et intervall på to måter
x[a:f]
x[[a, b, c, d, e]]
2D-indeksering¶
- I en matrise med to dimensjoner er den første indeksen alltid radene, mens den andre indeksen er kolonnene. Tenk f.eks. "Race Car", altså "Row Column"
- Skal man ha alle indekser i en rad eller kolonne bruker man kolon.
- Hvis man har en matrise og skal ha tak i rad
a
til men ikke medb
, og alle kolonnene skriver man[a:b,:]
. Rader og kolonner skilles med komma. - Vil man ha alle elementer fra start frem til (og ikke med) en indeks skriver man
[:a]
. Vil man ha fra (og med) en indeks til slutten skriver man[a:]
.
Dokumentasjon¶
Hvis du lurer på hvordan du bruker en funksjon, eller om det finnes en funksjon for noe du vil gjøre, eller hvilke input du kan gi en spesifikk funksjon - bruk Google.
Inkluder alltid "python" eller navnet på biblioteket du vil bruke (hvis du vet hvilket bibliotek du vil bruke) som ett av søkeordene.
Trenger du f.eks. å plotte en vertikal linje? Google "plot vertical line Matplotlib".
Lurer du på hvordan du kan endre markøren til datapunkt i et plot? Google "change marker matplotlib".
Hvordan man beregner forskjellen fra verdi til verdi i en vektor? Google "difference between values in array numpy".
Sider som stort sett har nyttig informasjon er dokumentasjonssidene til Numpy og Matplotlib, og Stackoverflow. Stackoverflow er et forum der folk stiller spørsmål og får svar. Scroll litt gjennom svarene, det er ikke alltid det enkleste svaret er på topp.
pd.read_csv()
Se dokumentasjonen til funskjonen pd.read_csv her. Under er noen spesifiseringer vi kommer innom i oppgavene.
sep=';'
beskriver hva som deler kolonnene i filen. Hvis du åpner filen i f.eks. notepad ser du at dette er semikolon i vårt tilfelle, men det er ofte tab, komma (default), eller kolon.decimal=','
må være med fordi verdiene i denne csv-filen er lagret med komma som desimaltegn istedet for punktum. For at verdien skal tolkes som ett tall og ikke to må vi fortelle funksjonen pd.read_csv at den skal tolke komme som desimaltegn.parse_dates=['Tid(norsk normaltid)']
konverterer innholdet i denne kolonnen til dato-format.dayfirst=True
sørger for at datoen tolkes riktig. Uten denne tolkes det første tallet i datoen som måned som er default.header=3
: Er det en "header" i filen? En header er linjer på toppen som ikke er faktiske data men forklaring på dataene.na_values='-'
: Hvis du åpner dette datasettet i notepad ser du at dette datasettet setter manglende verdier av moddeltemperatur til-
. Når man definererna_values='-'
forteller man koden at'-'
betyr at en verdi mangler. Koden setter da alle instanser av'-'
tilNaN
som står for Not a Number.Med
index_col
bestemmer du hvilken kolonne du vil bruke som index.engine=python
: I datasettet NAT624-studentene samler inn selv er grader Celcius angitt med grad-tegn (special character). Denne detaljen gjør at man må spesifisere "engine".Hvis df er en DataFrame konverterer vi til numpy array med denne funksjonen:
df.to_numpy()
.For å konvertere motsatt vei bruker man
pd.DataFrame(array)
, hvor "array" er et numpy array.
Last ned og prøv selv: