Grunnleggende Lineær Algebra med NumPy
Lineær algebra er en grunnleggende gren av matematikken som spiller en avgjørende rolle innen ulike felt, inkludert maskinlæring, dyp læring og dataanalyse.
Vektorer og matriser
I lineær algebra er en vektor et ordnet sett med verdier. 1D NumPy-arrays kan effektivt representere vektorer. En matrise er et todimensjonalt array av tall, som kan representeres med et 2D-array i NumPy.
Vi har allerede dekket vektor- og matriseaddisjon og -subtraksjon, samt skalarmultiplikasjon, i kapitlet "Grunnleggende matematiske operasjoner". Her vil vi fokusere på andre operasjoner.
Transponering
Transponering er en operasjon som speiler en matrise over dens diagonal. Med andre ord konverterer den radene i matrisen til kolonner og kolonnene til rader.
Du kan transponere en matrise ved å bruke attributtet .T på et NumPy-array:
12345import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
Skalarprodukt
Skalarproduktet er kanskje den mest brukte lineæralgebraoperasjonen innen maskinlæring og dyp læring. Skalarproduktet av to vektorer (som må ha likt antall elementer) er summen av deres elementvise produkter. Resultatet er en skalar:
Matrisemultiplikasjon
Matrisemultiplikasjon er definert kun dersom antall kolonner i den første matrisen er lik antall rader i den andre matrisen. Den resulterende matrisen vil ha samme antall rader som den første matrisen og samme antall kolonner som den andre matrisen.
Som du kan se, er hvert element i den resulterende matrisen skalarproduktet av to vektorer. Radnummeret til elementet tilsvarer nummeret til radvektoren i den første matrisen, og kolonnenummeret tilsvarer nummeret til kolonnevektoren i den andre matrisen.
Antall kolonner i den første matrisen må være likt antall rader i den andre matrisen, siden skalarproduktet krever at de to vektorene har samme antall elementer.
Skalarprodukt og matrisemultiplikasjon i NumPy
NumPy tilbyr funksjonen dot() for både skalarprodukt og matrisemultiplikasjon. Denne funksjonen tar to matriser som argumenter.
Du kan imidlertid også bruke operatoren @ mellom to matriser for å oppnå samme resultat.
12345678910111213import numpy as np vector_1 = np.array([1, 2, 3]) vector_2 = np.array([4, 5, 6]) # Dot product using the dot() function print(np.dot(vector_1, vector_2)) # Dot product using the @ operator print(vector_1 @ vector_2) matrix_1 = np.array([[1, 2, 3], [4, 5, 6]]) matrix_2 = np.array([[7, 10], [8, 11], [9, 12]]) # Matrix multiplication using the dot() function print(np.dot(matrix_1, matrix_2)) # Matrix multiplication using the @ operator print(matrix_1 @ matrix_2)
Hvis høyre argument i matrisemultiplikasjon er en vektor (1D-array), behandler NumPy den som en matrise der siste dimensjon er 1. For eksempel, når man multipliserer en 6x4 matrise med en vektor med 4 elementer, regnes vektoren som en 4x1 matrise.
Hvis venstre argument i matrisemultiplikasjon er en vektor, behandler NumPy den som en matrise der første dimensjon er 1. For eksempel, når man multipliserer en vektor med 4 elementer med en 4x6 matrise, regnes vektoren som en 1x4 matrise.
Bildet under viser strukturen til arrayene exam_scores og coefficients brukt i oppgaven:
Swipe to start coding
Du arbeider med exam_scores-arrayet, som inneholder simulerte eksamensresultater for tre studenter (hver rad representerer en student) på tvers av tre fag (hver kolonne representerer et fag).
- Multipliser poengene for hver fagprøve med den respektive koeffisienten.
- Legg sammen de resulterende poengene for hver student for å beregne deres endelige poengsum.
- Beregn prikkproduktet mellom
exam_scoresogcoefficients.
Dette gir deg de endelige poengsummene for alle studentene basert på de vektede bidragene fra deres fagresultater.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Can you explain the difference between the dot product and matrix multiplication?
How do I know when to use the dot() function versus the @ operator in NumPy?
Can you provide more examples of matrix multiplication with different shapes?
Awesome!
Completion rate improved to 3.7
Grunnleggende Lineær Algebra med NumPy
Sveip for å vise menyen
Lineær algebra er en grunnleggende gren av matematikken som spiller en avgjørende rolle innen ulike felt, inkludert maskinlæring, dyp læring og dataanalyse.
Vektorer og matriser
I lineær algebra er en vektor et ordnet sett med verdier. 1D NumPy-arrays kan effektivt representere vektorer. En matrise er et todimensjonalt array av tall, som kan representeres med et 2D-array i NumPy.
Vi har allerede dekket vektor- og matriseaddisjon og -subtraksjon, samt skalarmultiplikasjon, i kapitlet "Grunnleggende matematiske operasjoner". Her vil vi fokusere på andre operasjoner.
Transponering
Transponering er en operasjon som speiler en matrise over dens diagonal. Med andre ord konverterer den radene i matrisen til kolonner og kolonnene til rader.
Du kan transponere en matrise ved å bruke attributtet .T på et NumPy-array:
12345import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
Skalarprodukt
Skalarproduktet er kanskje den mest brukte lineæralgebraoperasjonen innen maskinlæring og dyp læring. Skalarproduktet av to vektorer (som må ha likt antall elementer) er summen av deres elementvise produkter. Resultatet er en skalar:
Matrisemultiplikasjon
Matrisemultiplikasjon er definert kun dersom antall kolonner i den første matrisen er lik antall rader i den andre matrisen. Den resulterende matrisen vil ha samme antall rader som den første matrisen og samme antall kolonner som den andre matrisen.
Som du kan se, er hvert element i den resulterende matrisen skalarproduktet av to vektorer. Radnummeret til elementet tilsvarer nummeret til radvektoren i den første matrisen, og kolonnenummeret tilsvarer nummeret til kolonnevektoren i den andre matrisen.
Antall kolonner i den første matrisen må være likt antall rader i den andre matrisen, siden skalarproduktet krever at de to vektorene har samme antall elementer.
Skalarprodukt og matrisemultiplikasjon i NumPy
NumPy tilbyr funksjonen dot() for både skalarprodukt og matrisemultiplikasjon. Denne funksjonen tar to matriser som argumenter.
Du kan imidlertid også bruke operatoren @ mellom to matriser for å oppnå samme resultat.
12345678910111213import numpy as np vector_1 = np.array([1, 2, 3]) vector_2 = np.array([4, 5, 6]) # Dot product using the dot() function print(np.dot(vector_1, vector_2)) # Dot product using the @ operator print(vector_1 @ vector_2) matrix_1 = np.array([[1, 2, 3], [4, 5, 6]]) matrix_2 = np.array([[7, 10], [8, 11], [9, 12]]) # Matrix multiplication using the dot() function print(np.dot(matrix_1, matrix_2)) # Matrix multiplication using the @ operator print(matrix_1 @ matrix_2)
Hvis høyre argument i matrisemultiplikasjon er en vektor (1D-array), behandler NumPy den som en matrise der siste dimensjon er 1. For eksempel, når man multipliserer en 6x4 matrise med en vektor med 4 elementer, regnes vektoren som en 4x1 matrise.
Hvis venstre argument i matrisemultiplikasjon er en vektor, behandler NumPy den som en matrise der første dimensjon er 1. For eksempel, når man multipliserer en vektor med 4 elementer med en 4x6 matrise, regnes vektoren som en 1x4 matrise.
Bildet under viser strukturen til arrayene exam_scores og coefficients brukt i oppgaven:
Swipe to start coding
Du arbeider med exam_scores-arrayet, som inneholder simulerte eksamensresultater for tre studenter (hver rad representerer en student) på tvers av tre fag (hver kolonne representerer et fag).
- Multipliser poengene for hver fagprøve med den respektive koeffisienten.
- Legg sammen de resulterende poengene for hver student for å beregne deres endelige poengsum.
- Beregn prikkproduktet mellom
exam_scoresogcoefficients.
Dette gir deg de endelige poengsummene for alle studentene basert på de vektede bidragene fra deres fagresultater.
Løsning
Takk for tilbakemeldingene dine!
single