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 kapittelet "Grunnleggende matematiske operasjoner". Her vil vi fokusere på andre operasjoner.
Transponering
Transponering er en operasjon som snur en matrise over dens diagonal. Med andre ord, den gjør radene i matrisen om til kolonner og kolonnene om 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:
Matrise-multiplikasjon
Matrise-multiplikasjon er kun definert 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 matrise-multiplikasjon i NumPy
NumPy tilbyr funksjonen dot() for både skalarprodukt og matrise-multiplikasjon. Denne funksjonen tar to arrayer som argumenter.
Du kan også bruke operatoren @ mellom to arrayer 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 matrise-multiplikasjon 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 matrise-multiplikasjon 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, behandles 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å den vektede bidraget 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
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 kapittelet "Grunnleggende matematiske operasjoner". Her vil vi fokusere på andre operasjoner.
Transponering
Transponering er en operasjon som snur en matrise over dens diagonal. Med andre ord, den gjør radene i matrisen om til kolonner og kolonnene om 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:
Matrise-multiplikasjon
Matrise-multiplikasjon er kun definert 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 matrise-multiplikasjon i NumPy
NumPy tilbyr funksjonen dot() for både skalarprodukt og matrise-multiplikasjon. Denne funksjonen tar to arrayer som argumenter.
Du kan også bruke operatoren @ mellom to arrayer 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 matrise-multiplikasjon 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 matrise-multiplikasjon 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, behandles 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å den vektede bidraget fra deres fagresultater.
Løsning
Takk for tilbakemeldingene dine!
single