Denne vejledning viser dig, hvordan du bruger NumPy max-funktionen, som du vil se i Python-kode som np.max.

På et højt niveau vil jeg forklare funktionen og vise dig, hvordan den fungerer. Da det er tilfældet, er der to primære afsnit i denne tutorial: syntaksen for NumPy max og eksempler på, hvordan du bruger NumPy max.

Hvis du stadig er ved at komme i gang med NumPy, anbefaler jeg, at du læser hele tutorialen, fra start til slut. Når det er sagt, kan du, hvis du blot ønsker at få et hurtigt svar på et spørgsmål, springe videre til det relevante afsnit med et af følgende links:

  • Syntaksen i NumPy max
  • Eksempler på, hvordan du bruger NumPy max

Ok. Med alt dette i baghovedet, så lad os komme i gang.

Først skal vi tale om NumPy og NumPy max-funktionen.

En hurtig introduktion til NumPy max-funktionen

Det er sikkert klart for dig, at NumPy max-funktionen er en funktion i NumPy-modulet.

Men hvis du er en rigtig nybegynder, ved du måske ikke rigtig, hvad NumPy er. Så før vi taler specifikt om np.max-funktionen, skal vi hurtigt tale om NumPy.

Hvad er NumPy helt præcist?

Numpy er et datamanipulationsmodul til Python

For at sige det meget enkelt, er NumPy en datamanipulationspakke til programmeringssproget Python.

Hvis du er interesseret i datalogi i Python, er NumPy meget vigtig. Det skyldes, at en stor del af datavidenskabsarbejdet simpelthen er datamanipulation. Uanset om du laver deep learning eller dataanalyse, består en stor del af arbejdet inden for datavidenskab blot i at rense data, forberede data og udforske dem for at sikre, at de er i orden at bruge.

Og igen, på grund af vigtigheden af datamanipulation, er NumPy meget vigtig for datavidenskab i Python.

Numpy er et værktøjssæt til at arbejde med numeriske data

Specifikt set giver NumPy dog et sæt værktøjer til at arbejde med numeriske data.

Python har andre værktøjssæt til at arbejde med ikke-numeriske data og data af blandet type (f.eks. Pandas-modulet). Men hvis du har nogen form for numeriske data, som du skal rense, ændre, omforme eller analysere, er NumPy sandsynligvis det værktøjssæt, du har brug for.

Og selv om NumPy-funktioner kan operere på en række forskellige datastrukturer, er de bygget til at operere på en struktur kaldet et NumPy-array. NumPy-arrays er blot en særlig form for Python-objekt, der indeholder numeriske data. Der er en række forskellige måder at oprette NumPy-arrays på, herunder np.array-funktionen, np.ones-funktionen, np.zeros-funktionen og np.arange-funktionen, sammen med mange andre funktioner, der er behandlet i tidligere tutorials her på Sharp Sight.

Væsentligt er, at NumPy-arrays er optimeret til numeriske beregninger. Så der er et sæt værktøjer i NumPy til at udføre numeriske beregninger på NumPy-arrays, som f.eks. beregning af middelværdien af et NumPy-array, beregning af medianen af et NumPy-array osv.

Væsentligt set giver NumPy dig en værktøjskasse til at oprette arrays med numeriske data og udføre beregninger på disse numeriske data.

En af de beregninger, du kan udføre, er at beregne den maksimale værdi af et NumPy-array. Det er her, np.max-funktionen kommer ind i billedet.

NumPy max beregner maksimumværdien af værdierne i et NumPy-array

Funktionen numpy.max() beregner den maksimale værdi af de numeriske værdier, der er indeholdt i et NumPy-array. Den kan også beregne den maksimale værdi af rækkerne, kolonnerne eller andre akser. Det taler vi om i afsnittet om eksempler.

Syntaktisk set vil du ofte se NumPy-max-funktionen i kode som np.max. Du vil se den skrevet på denne måde, når programmøren har importeret NumPy-modulet med aliaset np.

Dertil kommer, bare for at præcisere, at du skal vide, at np.max-funktionen er det samme som NumPy amax-funktionen, AKA np.amax. I bund og grund er np.max et alias for np.amax. Bortset fra navnet er de det samme.

Et eksempel på højt niveau på, hvordan np.max fungerer

Sidst i denne vejledning vil jeg vise dig konkrete eksempler på, hvordan du kan bruge np.max-funktionen, men lige her vil jeg give dig en grov idé om, hvad den gør.

Antag for eksempel, at du har et 1-dimensionelt NumPy-array med fem værdier:

Et visuelt eksempel på et numpy-array, som vi skal bruge med numpy max

Vi kan bruge NumPy max-funktionen til at beregne den maksimale værdi:

En visuel fremstilling af, hvordan NumPy max beregner gennemsnittet af et NumPy-array.

Selv om dette eksempel viser, hvordan np.max()-funktionen fungerer på et 1-dimensionalt NumPy-array, fungerer den på samme måde på 2-dimensionale arrays og flerdimensionale arrays. Igen viser jeg dig fuldstændige eksempler på disse i afsnittet om eksempler i denne tutorial.

Hvor vi ser på kodeeksemplerne, skal vi dog tage et hurtigt kig på syntaksen og parametrene for np.max.

Syntaksen for numpy max

Syntaksen for np.max-funktionen er ret ligetil, selv om nogle af funktionens parametre kan være lidt forvirrende.

Her vil vi tale om den syntaktiske opbygning af funktionen, og jeg vil også forklare de vigtige parametre.

En hurtig bemærkning

En hurtig bemærkning, før vi begynder at gennemgå syntaksen.

Syntaktisk set er det korrekte navn på funktionen numpy.max().

Hvis det er sagt, vil du ofte se funktionen i kode som np.max().

Hvorfor?

I starten af et program, der bruger NumPy-modulet, vil programmører ofte importere NumPy-funktionen som np i starten af et program, der bruger NumPy-modulet. Du vil bogstaveligt talt se en kodelinje i programmet, der lyder import numpy as np. Dette importerer i realiteten NumPy-modulet med aliaset np. Dette gør det muligt for programmøren at henvise til NumPy som np i koden, hvilket gør det muligt at henvise til numpy.max-funktionen som np.max.

Når det er sagt, så lad os se nærmere på syntaksen.

En forklaring af syntaksen

På et højt niveau er syntaksen for np.max er ret ligetil.

Der er navnet på funktionen – np.max() – og inde i funktionen er der flere parametre, som gør det muligt for os at styre funktionens nøjagtige opførsel.

En forklaring af syntaksen for NumPy max.

Lad os se nærmere på parametrene i np.max, for det er parametrene, der virkelig giver dig finkornet kontrol over funktionen.

Parametrene i np.max

Den numpy.max-funktionen har fire primære parametre:

  • a
  • axis
  • out
  • keepdims

Lad os tale om hver af disse parametre enkeltvis.

a (påkrævet)

Med -parameteren kan du angive de data, som np.max-funktionen skal operere på. I det væsentlige angiver den inputarrayet til funktionen.

I mange tilfælde vil dette inputarray være et rigtigt NumPy-array. Når det er sagt, vil numpy.max (og de fleste af de andre NumPy-funktioner) operere på enhver “array-lignende sekvens” af data. Det betyder, at argumentet til a-parameteren kan være en Python-liste, en Python-tupel eller en af flere andre Python-sekvenser.

Hold dig for øje, at du skal give noget til dette argument. Det er påkrævet.

axis (valgfri)

Med axis-parameteren kan du angive den akse, som du vil beregne maksimumsværdierne på.

Sagt mere enkelt, giver axis-parameteren dig mulighed for at beregne rækkemaksima og kolonnemaksima.

Jeg forklarer mere detaljeret, hvordan du gør det i afsnittet med eksempler nedenfor, men lad mig hurtigt forklare, hvordan axis-parameteren fungerer.

En hurtig gennemgang af array-akser

På et højt niveau skal du forstå, at NumPy-arrays har akser.

Akser er ligesom retninger langs NumPy-arrayet. I et 2-dimensionelt array er akse 0 den akse, der peger nedad i rækkerne, og akse 1 er den akse, der peger horisontalt på tværs af kolonnerne.

En visuel forklaring på NumPy-array-akser.

Array-parameteren angiver den akse, der skal beregne maksima

Så hvordan hænger det sammen med parameteren axis?

Når vi bruger axis-parameteren i funktionen numpy.max, angiver vi den akse, langs hvilken vi skal finde maksimaerne.

Dette giver os effektivt mulighed for at beregne kolonnemaksima og rækkemaksima.

Lad mig vise dig, hvad jeg mener.

Husk, at akse 0 er den akse, der peger nedad, nedad i rækkerne.

Når vi bruger koden np.max(axis = 0) på et array, fortæller vi effektivt NumPy, at den skal beregne maksimumsværdierne i den retning … akse 0-retningen.

Et eksempel på brug af np.max med axis = 0.

Effektivt angiver vi, når vi indstiller axis = 0, at vi ønsker at beregne kolonnemaksima.

Sådan skal du huske, at i et 2-dimensionelt array peger axis 1 vandret. Når vi bruger NumPy max med axis = 1, fortæller vi derfor NumPy, at den skal beregne maksimumværdierne horisontalt, i akse 1’s retning.

Eksempel på brug af np.max med akse = 1.

Dette beregner effektivt rækkemaksimaerne.

Jeg viser dig konkrete kodeeksempler på, hvordan du gør dette, senere i afsnittet med eksempler.

Husk, at axis-parameteren er valgfri. Hvis du ikke angiver en akse, finder NumPy max den maksimale værdi i hele NumPy-arrayet.

out (valgfrit)

Med out-parameteren kan du angive et særligt output-array, hvor du kan gemme output af np.max.

Det er ikke almindeligt at bruge denne parameter (især hvis du er nybegynder), så vi kommer ikke til at diskutere den i denne vejledning.

out er en valgfri parameter.

keepdims (valgfri)

Parameteren keepdims er lidt forvirrende, så det vil kræve en lille indsats at forstå den.

I sidste ende holder parameteren keepdims dimensionerne i outputtet de samme som dimensionerne i input.

For at forstå, hvorfor dette kan være nødvendigt, skal vi se på, hvordan funktionen numpy.max typisk fungerer.

Når du bruger np.max på et typisk NumPy-array, reducerer funktionen antallet af dimensioner. Den opsummerer dataene.

For eksempel kan vi sige, at du har et 1-dimensionelt NumPy-array. Du bruger NumPy max på arrayet.

Når du bruger np.max på et 1-dimensionalt array, vil resultatet være et enkelt tal. En skalarværdi … ikke et 1-d array.

Et visuelt eksempel på, hvordan np.max opsummerer et 1-d array ned til et enkelt tal, ved at beregne MAX-værdien.

Væsentligt er, at funktioner som NumPy max (samt numpy.median, numpy.mean osv.) opsummerer dataene, og ved at opsummere dataene producerer disse funktioner output, der har et reduceret antal dimensioner.

Sommetider ønsker man dog, at output skal have det samme antal dimensioner. Der er tilfælde, hvor du, hvis input er et 1-d array, ønsker, at output skal være et 1-d array (selv om output arrayet har en enkelt værdi i det).

Du kan gøre dette parameteren keepdims.

Som standard er keepdims indstillet til False. Så som standard (som diskuteret ovenfor) vil dimensionerne i output ikke være de samme som dimensionerne i input. Som standard vil dimensionerne i output være mindre (fordi np.max opsummerer dataene).

Men hvis du indstiller keepdims = True, vil output have de samme dimensioner som input.

Dette er lidt abstrakt uden et konkret eksempel, så jeg viser dig et eksempel på denne adfærd senere i afsnittet om eksempler.

Og faktisk, nu hvor vi har gennemgået parametrene, er dette et godt sted at begynde at se på eksemplerne på NumPy max.

Eksempler: Sådan bruger du numpy max-funktionen

I dette afsnit vil jeg vise dig konkrete eksempler på, hvordan du kan bruge NumPy max-funktionen.

Jeg vil vise dig flere variationer af, hvordan du kan finde den maksimale værdi af et array. Jeg viser dig, hvordan du finder den maksimale værdi af et 1-d array, hvordan du finder den maksimale værdi af et 2-d array, og hvordan du arbejder med flere af de vigtige parametre i numpy.max.

Kør denne kode først

Hvor vi går i gang, er der nogle indledende ting, som du skal gøre for at blive sat ordentligt op.

Først skal du have NumPy installeret korrekt på din computer.

Import numpy

For det andet skal du have NumPy importeret i dit arbejdsmiljø.

Du kan importere NumPy med følgende kode:

import numpy as np

Bemærk, at vi har importeret NumPy som np. Det betyder, at vi vil henvise til NumPy i vores kode med aliaset np.

Okay, nu hvor det er overstået, så lad os se på nogle eksempler.

Beregne maks. af et 1-dimensionelt array

Vi starter simpelt.

Her skal vi beregne den maksimale værdi af et 1-d NumPy-array.

For at gøre dette skal vi først bare oprette et 1-dimensionelt array, der indeholder nogle tilfældige hele tal. For at oprette dette array bruger vi funktionen numpy.random.randint(). Husk, at du skal bruge np.random.seed()-funktionen, så dit NumPy-array indeholder de samme hele tal som de hele tal i dette eksempel.

np.random.seed(22)np_array_1d = np.random.randint(size = 5, low = 0, high = 99)

Denne syntaks vil oprette et 1-dimensionalt array kaldet np_array_1d.

Vi kan udskrive np_array_1d ved hjælp af funktionen print().

print(np_array_1d)

Og her er outputtet:


Visuelt kan vi identificere den maksimale værdi, som er 84.

Men lad os gøre det med noget kode.

Her beregner vi den maksimale værdi af vores NumPy-array ved hjælp af np.max()-funktionen.

np.max(np_array_1d)

Hvilket giver følgende output:

84

Dette er et meget simpelt eksempel, men det illustrerer teknikken. Det er klart, at når arrayet kun er 5 elementer langt, kan du visuelt inspicere arrayet og finde den maksimale værdi. Men denne teknik vil fungere, hvis du har et array med tusindvis af værdier (eller flere!).

Beregne maksimum af et 2-d array

Næste punkt: Lad os beregne maksimum af et 2-d array.

For at gøre dette har vi naturligvis brug for et 2-d array at arbejde med, så vi opretter først et 2-dimensionelt NumPy-array.

For at oprette vores 2-d array skal vi bruge funktionen np.random.choice(). Denne funktion trækker i det væsentlige en tilfældig stikprøve fra de hele tal mellem 0 og 8, uden erstatning. Efter at np.random.choice() er udført, bruger vi metoden reshape() til at omforme de hele tal til et 2-dimensionelt array med 3 rækker og 3 kolonner.

np.random.seed(1)np_array_2d = np.random.choice(9, 9, replace = False).reshape((3,3))

Lad os tage et kig ved at udskrive arrayet, np_array_2d.

print(np_array_2d)
 ]

Som du kan se, er der tale om et 2-dimensionalt array med 3 rækker og 3 kolonner. Det indeholder de hele tal fra 0 til 8, arrangeret tilfældigt i arrayet.

Lad os nu beregne den maksimale værdi af arrayet:

np.max(np_array_2d)

Det giver følgende resultat:

8

Dette er igen et meget simpelt eksempel, men du kan bruge dette med et meget større 2-d array, og det vil fungere på samme måde. Når du har lært at bruge denne teknik, kan du prøve den med større arrays!

Næste punkt: Lad os lave noget mere kompliceret.

… i de næste eksempler vil vi beregne kolonnemaksima og rækkemaksima.

Beregne den maksimale værdi af kolonnerne i et 2-d array

Først: vi vil beregne de maksimale værdier af kolonnerne i et array.

For at gøre dette skal vi bruge parameteren axis. Mere specifikt skal vi indstille axis = 0 inde i funktionen numpy.max.

Lad os hurtigt gennemgå hvorfor.

Axis-parameteren angiver, hvilken akse du vil opsummere

Husk, at NumPy-arrays har akser, og at akserne er som retninger langs arrayet. I et 2-d array er akse 0 den akse, der peger nedad, og akse 1 er den akse, der peger vandret.

En visuel forklaring på NumPy array-akser.

Vi kan bruge disse akser til at definere den retning, langs hvilken vi skal bruge np.max.

Så lad os sige, at vi ønsker at beregne de maksimale værdier for kolonnerne. Dette svarer til at beregne middelværdierne nedad.

For at beregne kolonnernes maksimumværdier skal vi i princippet beregne maksimumværdierne i akse-0-retningen.

Beregne max med akse = 0

Lad mig vise dig hvordan.

Her skal vi genskabe vores 2-d NumPy-array. Dette er det samme som det 2-d NumPy-array, som vi oprettede i et tidligere eksempel, så hvis du allerede har kørt den kode, behøver du ikke at køre den igen.

np.random.seed(1)np_array_2d = np.random.choice(9, 9, replace = False).reshape((3,3))

Og vi kan udskrive det:

print(np_array_2d)
 ]

Etter en gang er dette et 2-d array med 3 rækker og 3 kolonner. Det indeholder de hele tal fra 0 til 8, arrangeret tilfældigt i arrayet.

Nu kan vi beregne kolonnemaksima ved at bruge numpy.max med axis = 0.

# CALCULATE COLUMN MAXIMAnp.max(np_array_2d, axis = 0)

Det giver følgende output array:

array()

Lad os evaluere, hvad der skete her.

Ved at indstille axis = 0 specificerede vi, at vi ønsker, at NumPy max-funktionen skal beregne de maksimale værdier nedad langs akse 0.

Når vi indstiller axis = 0, beregner numpy.max de maksimale værdier i kolonnerne.

Det er ret ligetil, så længe du forstår NumPy-akser, og hvordan de fungerer i NumPy-funktionerne.

Beregne række-max med axis = 1

Sådan kan vi beregne række-max-værdierne ved at indstille parameteren axis til axis = 1.

Her er koden til at oprette 2-d datasættet igen:

np.random.seed(1)np_array_2d = np.random.choice(9, 9, replace = False).reshape((3,3))
print(np_array_2d)

 ]

Og lad os nu beregne rækkemaksima:

np.max(np_array_2d, axis = 1)

Med følgende output:

array()

Dette burde give mening, hvis du allerede har læst og forstået de foregående eksempler.

Når vi indstiller axis = 1, fortæller vi numpy.max, at den skal beregne de maksimale værdier i akse-1-retningen. Da akse 1 er den akse, der løber horisontalt langs arrayet, beregner dette effektivt de maksimale værdier langs rækkerne i et 2-d array:

Når vi indstiller axis = 1, beregner numpy.max de maksimale værdier i rækkerne.

Også dette er ret ligetil, så længe du virkelig forstår NumPy-arrayakser. Hvis du stadig har problemer med at forstå akser, anbefaler jeg, at du gennemgår vores tutorial om NumPy array-akser.

Sådan bruger du keepdims-parameteren med np.max

Sluttelig skal vi se på keepdims-parameteren.

Hvor vi gør det, vil jeg gerne forklare, hvorfor vi har brug for den.

Som jeg bemærkede tidligere, opsummerer NumPy max-funktionen data, når du bruger den. Faktisk opsummerer mange af NumPy-funktionerne, der beregner sammenfattende statistikker (som np.mean, np.median, np.min osv.) data i kraft af deres natur. Når du beregner en sammenfattende statistik, opsummerer du pr. definition dataene.

Dette har vigtige konsekvenser i forbindelse med dataenes dimensioner.

Når du opsummerer dine data med en funktion som numpy.max, vil resultatet af funktionen have et reduceret antal dimensioner.

For eksempel, lad os sige, at du beregner den maksimale værdi af et 2-dimensionelt array. Hvis du bruger numpy.max på dette 2-dimensionelle array (uden parameteren axis), vil output være et enkelt tal, en skalar. Skalarer har nul dimensioner. To dimensioner ind, nul dimension ud.

Den NumPy max-funktion reducerer effektivt dimensionerne mellem input og output.

Sommetider ønsker du dog ikke et reduceret antal dimensioner. Der kan være situationer, hvor du har brug for, at output teknisk set har de samme dimensioner som input (selv om output er et enkelt tal).

Du kan fremtvinge denne adfærd ved at bruge parameteren keepdims.

Sæt keepdims lig med true (og behold de samme dimensioner)

Som standard er parameteren keepdims indstillet til False. Som jeg lige har forklaret, betyder det, at output ikke behøver at have de samme dimensioner som input, som standard.

Men hvis du indstiller keepdims = True, vil dette tvinge output til at have samme antal dimensioner som input.

Dette kan forvirre dig, så lad os se på et solidt eksempel.

Først opretter vi bare et 2-d array.

Dette er det samme array, som vi oprettede tidligere, så hvis du allerede har kørt denne kode, behøver du ikke at køre den igen. Denne kode opretter i bund og grund et 2-d array med tallene fra 0 til 8, arrangeret tilfældigt i et 3 gange 3 array.

np.random.seed(1)np_array_2d = np.random.choice(9, 9, replace = False).reshape((3,3))

Lad os for overskuelighedens skyld tage et kig ved at udskrive det:

print(np_array_2d)

Og her er arrayet:

 ]

Og igen indeholder dette array bare de hele tal fra 0 til 8, arrangeret tilfældigt i et 3-by-3 NumPy-array.

Og hvor mange dimensioner har det?

Det er sikkert indlysende for dig, men vi kan direkte hente antallet af dimensioner ved at udtrække attributten ndim fra arrayet.

np_array_2d.ndim

Og dette fortæller os antallet af dimensioner:

2

np_array_2d er et 2-dimensionelt array.

Nu skal vi bruge np.max til at beregne den maksimale værdi af arrayet.

np.max(np_array_2d)

Den maksimale værdi er 8.

Og hvor mange dimensioner har outputtet? Vi kan kontrollere det ved at henvise til attributten ndim i slutningen af np.max()-funktionen:

np.max(np_array_2d).ndim

Hvor mange dimensioner har outp.max?

0.

Outp.max’s output er den maksimale værdi (8), som er en skalar. Denne skalar har nul dimensioner.

Kør np.max igen med keepdims = True

Nu skal vi køre koden igen med keepdims = True.

np.max(np_array_2d, keepdims = True)

Hvilket giver følgende output:

array(])

Og lad os kontrollere dimensionerne:

np.max(np_array_2d, keepdims = True).ndim
2

Her, når vi kører np.max på np_array_2d med keepdims = True, har output 2 dimensioner.

Opmærksom på, at den maksimale værdi er den samme: 8. Det er bare, at dimensionerne i output er forskellige. Ved at indstille keepdims = True ændrer vi strukturen af output … i stedet for at være en skalar er output faktisk et 2-dimensionelt NumPy-array med en enkelt værdi (8).

Hvis du vil lære datalogi i Python, skal du lære NumPy

Hvis du har læst andre tutorials her på Sharp Sight-datalogibloggen, ved du, hvor vigtig datamanipulation er.

Hvis du er seriøs med hensyn til at lære datalogi, skal du virkelig mestre det grundlæggende i datamanipulation. En stor del af arbejdsgangen inden for datavidenskab består netop i at rense og manipulere inputdata.

Hvis du arbejder i Python, er NumPy en af de essentielle færdigheder, du skal kende, NumPy. Numpy er afgørende for at rense, manipulere og udforske dine data.

Hvis du vil lære datalogi i Python, skal du lære NumPy, og du skal lære det godt.

For flere Python data science tutorials, tilmeld dig vores e-mail-liste

Hvis det er sagt, hvis du vil lære NumPy og data science i Python, så tilmeld dig vores e-mail-liste.

Her på Sharp Sight-bloggen udgiver vi regelmæssigt data science tutorials.

Når du tilmelder dig, får du gratis tutorials om:

  • NumPy
  • Pandas
  • Base Python
  • Scikit learn
  • Machine learning
  • Deep learning
  • … og meget mere.

Når vi udgiver tutorials, sender vi dem direkte til din indbakke.

Vil du lære datalogi i Python? Tilmeld dig nu.

Tilmeld dig GRATIS tutorials om datavidenskab

Hvis du vil mestre datavidenskab hurtigt, så tilmeld dig vores e-mail-liste.

Når du tilmelder dig, modtager du GRATIS ugentlige tutorials om, hvordan du laver datavidenskab i R og Python.

Kontroller din e-mailindbakke for at bekræfte din tilmelding …

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.