Python NumPy-opplæring for nybegynnere
⚡ Smart oppsummering
NumPy er det grunnleggende Python bibliotek for numerisk databehandling, kraftproduksjon av arrayer, matriser, lineær algebra og tilfeldig utvalg. Denne NumPy-opplæringen går gjennom installasjon, arrayoppretting, omformingping, slicing, statistikk og matrisematematikk med kjørbar Python eksempler.

Hva er NumPy i Python?
nusset er en åpen kildekode Python bibliotek for matematisk, vitenskapelig, ingeniørmessig og datavitenskapelig programmering. Det er et veldig nyttig bibliotek for matematiske og statistiske operasjoner i PythonDen fungerer perfekt med flerdimensjonale arrayer og matrisemultiplikasjon, og integreres enkelt med C/C++ og Fortran.
For ethvert vitenskapelig prosjekt er NumPy verktøyet du bør kjenne til. Det er bygget for N-dimensjonale matriser, lineær algebra, generering av tilfeldige tall, Fourier-transformasjoner og mer.
NumPy gir Python Førsteklasses støtte for flerdimensjonale arrayer og matriser, pluss et stort sett med matematiske operasjoner som påvirker dem. I denne veiledningen vil vi gjennomgå de viktigste funksjonene du trenger å vite før du går videre til veiledningen om 'tensorflow».
Hvorfor bruke NumPy?
NumPy er minneeffektiv, så den kan håndtere store mengder numeriske data lettere enn rene Python lister. Det er også veldig praktisk for matrisemultiplikasjon og omformingping, og den er rask fordi det tunge arbeidet delegeres til kompilerte C-rutiner. Faktisk er biblioteker som TensorFlow, PyTorch og Scikit-learn er avhengige av NumPy-arrayer for matrisematematikk i backend-en, noe som gjør NumPy til den stille arbeidshesten under de fleste moderne datavitenskaps- og AI-arbeidsflyter.
Hvordan installere NumPy
For å installere NumPy-biblioteket, se veiledningen vår. Hvordan installere TensorFlow. NumPy er installert som standard med Anaconda.
I det sjeldne tilfellet at NumPy ikke er installert, bruk et av alternativene nedenfor.
Du kan installere NumPy ved å bruke Anaconda:
conda install -c anaconda numpy
- In Jupyter Notebook:
import sys
!conda install --yes --prefix {sys.prefix} numpy
Pip-brukere kan installere eller oppgradere med én kommando:
pip install --upgrade numpy
Importer NumPy og sjekk versjon
Kommandoen for å importere numpy er:
import numpy as np
Linjen ovenfor endrer navnerommet til NumPy til npDenne snarveien lar deg sette prefikset for NumPy-funksjoner, -metoder og -attributter med np. i stedet for takkping numpy., og det er standardkonvensjonen du finner på tvers av NumPy-økosystemet.
For å sjekke hvilken versjon av NumPy som er installert, bruk kommandoen nedenfor:
print(np.__version__)
Utgang:
2.1.3
NumPy 2.0 ble levert i juni 2024 og er den nåværende stabile hovedserien. Hvis prosjektet ditt fortsatt er avhengig av 1.x API, fest til numpy<2 i kravfilen din fordi noen eldre aliaser som np.float ble fjernet i 2.0.
Hva er en Python NumPy Array?
NumPy-arrayer ser litt ut som Python lister ved første øyekast, men de oppfører seg veldig annerledes. For lesere som er nye i emnet, la oss avklare hva en ndarray er og hvorfor den er viktig.
Som navnet antyder, er en NumPy-matrise den sentrale datastrukturen i NumPy-biblioteket. Selve navnet er en forkortelse for «Numerisk Python" eller "Numerisk Python”, og ndarrayen er en homogen minneblokk med fast størrelse med en kjent form og datatype.
Opprette en NumPy-matrise
Den enkleste måten å lage en array i NumPy er å starte fra en Python Liste.
myPythonList = [1,9,8,3]
Konverter Python liste til en NumPy-matrise ved hjelp av np.array.
numpy_array_from_list = np.array(myPythonList)
Vis innholdet i arrayet.
numpy_array_from_list
Utgang:
array([1, 9, 8, 3])
I praksis er det ikke nødvendig å erklære en Python liste først. De to trinnene kan kombineres.
a = np.array([1,9,8,3])
NOTAT: NumPy-dokumentasjonen nevner også np.ndarray, men np.array er den anbefalte fabrikkfunksjonen for daglig bruk.
Du kan også opprette en NumPy-array fra en tuple på samme måte.
matematisk Operasjoner på en Array
Du kan utføre matematiske operasjoner som addisjon, subtraksjontracsjon, divisjon og multiplikasjon på en matrise. Syntaksen er matrisenavnet, etterfulgt av operatoren (+, -, *, /), etterfulgt av operanden. Disse operasjonene er vektoriserte, noe som betyr at NumPy bruker dem på hvert element uten en eksplisitt Python sløyfe.
Eksempel:
numpy_array_from_list + 10
Utgang:
array([11, 19, 18, 13])
Denne operasjonen legger 10 til hvert element i NumPy-matrisen.
Shape of Array
Du kan sjekke formen på en matrise med shape attributtet, som du får tilgang til ved å legge det til arraynavnet. På samme måte kan du sjekke typen med dtype.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Et heltall er en verdi uten desimaltegn. Hvis du oppretter en matrise med desimaler, endres d-typen til flyttall.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
2 Dimension Array
Du kan legge til en dimensjon med komma i parentesene.
Merk at de indre tuplene må sitte innenfor de ytre parentesene [].
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3 Dimension Array
Høyere dimensjoner kan konstrueres på samme måte.
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
| Målet | Code |
|---|---|
| Opprett array | array([1,2,3]) |
| skrive ut formen | array([.]).form |
Hva er numpy.zeros()?
numpy.zeros() or np.zeros er en Python funksjonen som brukes til å lage en matrise fylt med nuller. numpy.zeros() er nyttig når du trenger å initialisere vekter under den første iterasjonen i TensorFlow eller sette opp plassholderbuffere for andre statistiske oppgaver.
numpy.zeros() funksjon Syntaks
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Parametere
Her
- Form: formen på NumPy-nullmatrisen.
- Dtype: datatypen til elementene. Dette er valgfritt, og standardverdien er
float64. - Ordenstandard er
C, som er rad-hovedoppsettet som brukes avnumpy.zeros()in Python.
Python numpy.zeros() Eksempel
import numpy as np np.zeros((2,2))
Utgang:
array([[0., 0.], [0., 0.]])
Eksempel på numpy zero med Datatype
import numpy as np np.zeros((2,2), dtype=np.int16)
Utgang:
array([[0, 0], [0, 0]], dtype=int16)
Hva er numpy.ones()?
np.ones() funksjon lager en matrise fylt med enere. numpy.ones() in Python er nyttig når du initialiserer vekter under den første iterasjonen i TensorFlow og for andre statistiske oppgaver.
Python numpy.ones() Syntaks
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Parametere
Her
- Formformen på np-ene Python Array.
- Dtype: datatypen til elementene. Dette er valgfritt, og standardverdien er
float64. - Ordenstandard er
C, som er rad-major-oppsettet.
Python numpy.ones() 2D-array med datatypeeksempel
import numpy as np np.ones((1,2,3), dtype=np.int16)
Utgang:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
numpy.reshape() funksjon i Python
Python NumPy omforme endrer formen på en matrise uten å endre dataene. Du må kanskje endre formen på data fra bredt til langt format, eller gå fra en 1D-vektor til en 2D-matrise før du mater den til en modell. np.reshape Funksjonen håndterer dette i ett kall.
Syntaks for np.reshape()
numpy.reshape(a, newShape, order='C')
Her
a: matrisen du vil omforme.
newShape: den nye ønskede formen.
Ordenstandard er C, rad-hovedoppsettet.
Eksempel på NumPy Reshape
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
Utgang:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.flatten() i Python
Python NumPy Flatten returnerer en kopi av tabellen kollapset til én dimensjon. Når du jobber med nevrale nettverk som convnets, må du ofte flate ut en bildetensor før du sender den til et tett lag. np.flatten() Funksjonen håndterer dette i et enkelt kall.
Syntaks for np.flatten()
numpy.flatten(order='C')
Her
Ordenstandard er C, rad-hovedoppsettet.
Eksempel på NumPy Flatten
e.flatten()
Utgang:
array([1, 2, 3, 4, 5, 6])
Hva er numpy.hstack() i Python?
numpy.hstack er en Python funksjon som brukes til å stable sekvenser av input-arrayer horisontalt til en enkelt array. Med hstack(), legger du til data langs kolonneaksen. Det er en veldig praktisk hjelper i NumPy når du trenger å slå sammen funksjonsvektorer side om side.
La oss studere hstack in Python med et eksempel.
Eksempel:
## Horizontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
Utgang:
Horizontal Append: [1 2 3 4 5 6]
Hva er numpy.vstack() i Python?
numpy.vstack er en Python funksjon som brukes til å stable sekvenser av input-arrayer vertikalt til en enkelt array. Med vstack(), legger du til data langs radaksen, noe som er nyttig når du vil kombinere grupper med prøver.
La oss studere det med et eksempel.
Eksempel:
## Vertical Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Vertical Append:', np.vstack((f, g)))
Utgang:
Vertical Append: [[1 2 3] [4 5 6]]
Etter å ha studert NumPy vstack og hstack, la oss se på et eksempel som genererer tilfeldige tall i NumPy.
Generer tilfeldig Numbers bruker NumPy
For å generere tilfeldige tall fra en Gaussisk fordeling, bruk:
numpy.random.normal(loc, scale, size)
Her
- Sted: gjennomsnittet. Sentrum av fordelingen.
- Skala: standardavviket.
- Størrelseantall returnerte prøver.
Eksempel:
## Generate random numbers from a normal distribution normal_array = np.random.normal(5, 0.5, 10) print(normal_array) [5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Hvis det plottes, er fordelingen lik den følgende plottet.

Merk at nyere kode i økende grad bruker det moderne generator-API-et, np.random.default_rng(), som er den anbefalte erstatningen for den eldre versjonen np.random.normal kall i NumPy 2.x.
NumPy Asarray-funksjon
Ocuco asarray() Funksjonen konverterer en inndata til en matrise. Inndataen kan være en liste, tuppel, ndarray eller lignende sekvens.
Syntaks:
numpy.asarray(data, dtype=None, order=None)
Her
dato: data du vil konvertere til en matrise.
dtypevalgfritt. Hvis ikke spesifisert, utledes datatypen fra inndataene.
Ordenstandard er C, rad-hovedoppsettet. Det andre alternativet er F (Fortran-stil kolonne-stor).
Eksempel:
Tenk deg følgende 2D-matrise med fire rader og fire kolonner, fylt med 1.
import numpy as np A = np.matrix(np.ones((4,4)))
Hvis du prøver å endre en verdi i matrisen gjennom np.array, originalen er ikke modifisert. Årsaken er at np.array lager en kopi av matrisen.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Matrisen er uendret. Bruk asarray når du vil endre den opprinnelige tabellen. La oss se hva som skjer når du setter den tredje raden til verdien 2.
np.asarray(A)[2]=2 print(A)
Code Forklaring:
np.asarray(A) konverterer matrisen A til en arrayvisning.
[2] velger den tredje raden.
Utgang:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
Hva er numpy.arange()?
numpy.arange() er en innebygd NumPy-funksjon som returnerer en ndarray som inneholder verdier med jevn avstand innenfor et definert intervall. For eksempel, for å opprette verdier fra 1 til 10, kan du kalle np.arange() in Python.
Syntaks:
numpy.arange(start, stop, step, dtype)
Python NumPy arange parametere:
- Start: starten av intervallet for
np.arangein Python. - Stopp: slutten av intervallet.
- Trinn: avstand mellom verdier. Standardtrinn er 1.
- Dtype: typen utdatamatrise for NumPy
arange.
Eksempel:
import numpy as np np.arange(1, 11)
Utgang:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Eksempel:
For å endre trinnet i denne NumPy-en arange for eksempel, legg til et tredje tall i parentesene. Det endrer trinnstørrelsen.
import numpy as np np.arange(1, 14, 4)
Utgang:
array([ 1, 5, 9, 13])
NumPy Linspace-funksjon
linspace returnerer jevnt fordelte prøver mellom to endepunkter.
Syntaks:
numpy.linspace(start, stop, num, endpoint)
Her
- Start: startverdien til sekvensen.
- Stopp: sluttverdien til sekvensen.
- IAntall prøver som skal genereres. Standard er 50.
- Endpointhvis
True(Standard),stoper den siste verdien. HvisFalse,stoper ikke inkludert.
Eksempel:
For eksempel kan den brukes til å lage 10 jevnt fordelte verdier fra 1 til 5.
import numpy as np np.linspace(1.0, 5.0, num=10)
Utgang:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Hvis du ikke vil inkludere det siste sifferet i intervallet, angi endpoint til False.
np.linspace(1.0, 5.0, num=5, endpoint=False)
Utgang:
array([1. , 1.8, 2.6, 3.4, 4.2])
LogSpace NumPy-funksjon i Python
logspace returnerer tall med jevne mellomrom på en logaritmisk skala. logspace deler de samme parameterne som np.linspace.
Syntaks:
numpy.logspace(start, stop, num, endpoint)
Eksempel:
np.logspace(3.0, 4.0, num=4)
Utgang:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
Til slutt, hvis du vil sjekke minnestørrelsen til et enkelt element i en matrise, kan du bruke itemsize.
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Utgang:
16
Hvert element tar 16 byte.
Indeksering og skjæring inn Python
Det er enkelt å dele data med NumPy. Vi skal dele matrisen e. i Python, bruker du hakeparenteser for å returnere rader eller kolonner.
Eksempel:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Husk at i NumPy starter den første arrayindeksen på 0.
## First row print('First row:', e[0]) ## Second row print('Second row:', e[1])
Utgang:
First row: [1 2 3] Second row: [4 5 6]
In Python, som i mange andre språk,
- Verdien før kommaet står for radene.
- Verdien etter kommaet står for kolonnene.
- Hvis du vil velge en kolonne, legg til
:før kolonneindeksen. :betyr at du vil ha alle radene fra den valgte kolonnen.
print('Second column:', e[:,1])
Second column: [2 5]
For å returnere de to første verdiene i den andre raden, bruk : for å velge alle kolonnene opp til den andre indeksen.
## Second Row, two values print(e[1, :2]) [4 5]
Statistiske funksjoner i Python
NumPy tilbyr et nyttig sett med statistiske funksjoner for å finne minimum, maksimum, persentil, standardavvik, varians og mer fra en gitt matrise. De vanligste er listet opp nedenfor.
NumPy leveres med robuste statistiske hjelpere, oppsummert i tabellen.
| Funksjon | Klumpete |
|---|---|
| Min | np.min() |
| max | np.max() |
| Mener | np.mean() |
| median | np.median() |
| Standardavvik | np.std() |
Tenk på følgende matrise:
Eksempel:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
Utgang:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Eksempel på statistiske NumPy-funksjoner
### Min print(np.min(normal_array)) ### Max print(np.max(normal_array)) ### Mean print(np.mean(normal_array)) ### Median print(np.median(normal_array)) ### Sd print(np.std(normal_array))
Utgang:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
Hva er numpy dot-produkt?
numpy.dot er en kraftig funksjon for matriseberegning. For eksempel kan du beregne prikkproduktet med np.dot. numpy.dot returnerer prikkproduktet av a og b, og håndterer både 1D- og 2D-matriser. For 2D-innganger utfører den matrisemultiplikasjon.
Syntaks:
numpy.dot(x, y, out=None)
Parametre
Her
x, y: inndataarrayer. x og y bør begge være 1D eller 2D for np.dot() å fungere som et prikkprodukt eller en matrisemultiplikasjon.
ut: valgfritt utdataargument brukt til å registrere resultatet. Ellers returneres en ndarray.
Returer
Funksjonen numpy.dot() returnerer prikkproduktet av to matriser x og yDen returnerer en skalar når begge er 1D, ellers returnerer den en matrise. Hvis out er gitt, returneres den matrisen.
høyninger
Prikkproduktet i Python hever en ValueError hvis den siste dimensjonen av x samsvarer ikke med den nest siste dimensjonen av y.
Eksempel:
## Linear algebra ### Dot product: product of two arrays f = np.array([1,2]) g = np.array([4,5]) ### 1*4+2*5 np.dot(f, g)
Utgang:
14
Matrisemultiplikasjon inn Python
NumPy-en matmul() Funksjonen returnerer matriseproduktet av to matriser. Slik fungerer den.
1) For 2D-matriser returnerer den det normale matriseproduktet.
2) For dimensjoner større enn 2 behandles produktet som en stabel med matriser.
3) En 1D-matrise blir først omgjort til en matrise, deretter beregnes produktet.
Infikset @ operatør, tilgjengelig siden Python 3.5 er en forkortelse for matmul og er mye brukt i moderne kode.
Syntaks:
numpy.matmul(x, y, out=None)
Her
x, y: input-arrayer. Skalarer er ikke tillatt.
ut: valgfri parameter. Vanligvis lagres utdataene i en ndarray.
Eksempel:
På samme måte kan du beregne matrisemultiplikasjon med np.matmul.
### Matmul: matrix product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
Utgang:
array([[19, 22], [43, 50]])
determinant
Hvis du trenger å beregne determinanten til en matrise, bruk np.linalg.det()NumPy tar seg av dimensjonene for deg.
Eksempel:
## Determinant 2*2 matrix ### 5*8-7*6 np.linalg.det(i)
Utgang:
-2.000000000000005
NumPy-kringkasting forklart
Kringkasting er regelen som lar NumPy utføre aritmetikk på matriser med forskjellige former uten å kopiere data. Når du legger til en skalar til en 1D-vektor, eller en 1D-vektor til en 2D-matrise, strekker NumPy den mindre operanden langs de manglende aksene slik at formene er på linje. Dette unngår eksplisitte Python løkker og er en av hovedgrunnene til at NumPy-kode føles rask og konsis.
To former er kompatible for kringkasting når, sammenlignet fra høyre til venstre, hvert dimensjonspar enten er lik eller en av dem er lik 1. For eksempel, en matrise av form (3, 4) kringkaster mot en rad med former (4,) eller en kolonne med form (3, 1)Den samme logikken driver normalisering i maskinlæring, hvor du sub-tracen gjennomsnittsvektor per funksjon fra en gruppe prøver på en enkelt linje. Kringkasting er også den konseptuelle modellen som brukes av tensorbiblioteker som PyTorch, TensorFlow og JAX, slik at reglene du lærer her overføres direkte til GPU-kode.
Hvordan NumPy driver AI og maskinlæring
NumPy sitter under nesten alle moderne Python AI-stabel. PyTorch-tensorer, TensorFlow ivrige tensorer og JAX-arrayer eksponerer den samme kringkastingen, slicingen og omformingenping API som du lærte på NumPy-matriser. Mange veiledninger mater fortsatt forhåndsbehandlede NumPy-matriser inn i modelltreningsløkker, og rammeverk godtar dem uten konvertering.
Tre konkrete mønstre viser hvordan NumPy kobles til AI-arbeid i dag. For det første former dataingeniører rå funksjoner til NumPy-arrayer før de overleverer dem til scikit-learn-pipelines eller til Hugging Face-datasett. For det andre bruker forskere NumPy som en CPU-baseline og bytter deretter inn CuPy, som gir et nesten identisk API, men kjører på NVIDIA GPU-er gjennom CUDA. For det tredje bygger JAX på NumPy API for å legge til automatisk differensiering og just-in-time-kompilering, slik at den samme koden som kjører på den bærbare datamaskinen kan kjøre på TPU-er i skyen. Konklusjonen er at array-ferdighetene du bygger med NumPy overføres til alle større verktøysett for dyp læring, noe som gjør denne veiledningen til et nyttig skritt på veien mot AI-utvikling.
