Grunnleggende Lineær Algebra med NumPy
Lineær algebra er en grunnleggende gren av matematikk som spiller en avgjørende rolle i 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-arrayer kan effektivt representere vektorer. En matrise er et todimensjonalt array av tall, som kan representeres av en 2D-array i NumPy.
Vi har allerede dekket vektor- og matriseaddisjon og -subtraksjon, samt skalar multiplikasjon, 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 konverterer radene i matrisen til kolonner og kolonnene til rader.
Du kan transponere en matrise ved å bruke .T
attributtet til en 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)
Prikkprodukt
Prikkproduktet er kanskje den mest brukte lineære algebraoperasjonen innen maskin- og dyp læring. Prikkproduktet av to vektorer (som må ha et likt antall elementer) er summen av deres elementvise produkter. Resultatet er en skalar:
Matrisemultiplikasjon
Matrisemultiplikasjon er kun definert hvis antallet kolonner i den første matrisen er likt antallet 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 prikkproduktet av to vektorer. Radnummeret til elementet tilsvarer nummeret på radvektoren i den første matrisen, og kolonnenummeret tilsvarer nummeret på kolonnevektoren i den andre matrisen.
Antall kolonner i den første matrisen må være lik antall rader i den andre matrisen, da prikkproduktet krever at de to vektorene har samme antall elementer.
Prikkprodukt og Matrisemultiplikasjon i NumPy
NumPy tilbyr dot()
-funksjonen for både prikkprodukt og matrisemultiplikasjon. Denne funksjonen tar to matriser som sine argumenter.
Du kan imidlertid også bruke @
operatoren mellom to matriser for å oppnå de samme resultatene.
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 det høyre argumentet i matrise-multiplikasjon er en vektor (1D array), behandler NumPy det som en matrise hvor den siste dimensjonen er 1. For eksempel, når man multipliserer en 6x4
matrise med en vektor med 4
elementer, betraktes vektoren som en 4x1
matrise.
Hvis det venstre argumentet i matrise-multiplikasjon er en vektor, behandler NumPy det som en matrise hvor den første dimensjonen er 1. For eksempel, når man multipliserer en vektor med 4
elementer med en 4x6
matrise, behandles vektoren som en 1x4
matrise.
Bildet nedenfor viser strukturen til exam_scores
og coefficients
arrayene brukt i oppgaven:
Swipe to start coding
Du jobber 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 til de resulterende poengene for hver student for å beregne deres endelige poengsum.
-
Beregn prikkproduktet mellom
exam_scores
ogcoefficients
.
Dette vil gi deg de endelige poengene for alle studenter basert på de vektede bidragene fra deres fagpoeng.
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 matematikk som spiller en avgjørende rolle i 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-arrayer kan effektivt representere vektorer. En matrise er et todimensjonalt array av tall, som kan representeres av en 2D-array i NumPy.
Vi har allerede dekket vektor- og matriseaddisjon og -subtraksjon, samt skalar multiplikasjon, 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 konverterer radene i matrisen til kolonner og kolonnene til rader.
Du kan transponere en matrise ved å bruke .T
attributtet til en 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)
Prikkprodukt
Prikkproduktet er kanskje den mest brukte lineære algebraoperasjonen innen maskin- og dyp læring. Prikkproduktet av to vektorer (som må ha et likt antall elementer) er summen av deres elementvise produkter. Resultatet er en skalar:
Matrisemultiplikasjon
Matrisemultiplikasjon er kun definert hvis antallet kolonner i den første matrisen er likt antallet 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 prikkproduktet av to vektorer. Radnummeret til elementet tilsvarer nummeret på radvektoren i den første matrisen, og kolonnenummeret tilsvarer nummeret på kolonnevektoren i den andre matrisen.
Antall kolonner i den første matrisen må være lik antall rader i den andre matrisen, da prikkproduktet krever at de to vektorene har samme antall elementer.
Prikkprodukt og Matrisemultiplikasjon i NumPy
NumPy tilbyr dot()
-funksjonen for både prikkprodukt og matrisemultiplikasjon. Denne funksjonen tar to matriser som sine argumenter.
Du kan imidlertid også bruke @
operatoren mellom to matriser for å oppnå de samme resultatene.
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 det høyre argumentet i matrise-multiplikasjon er en vektor (1D array), behandler NumPy det som en matrise hvor den siste dimensjonen er 1. For eksempel, når man multipliserer en 6x4
matrise med en vektor med 4
elementer, betraktes vektoren som en 4x1
matrise.
Hvis det venstre argumentet i matrise-multiplikasjon er en vektor, behandler NumPy det som en matrise hvor den første dimensjonen er 1. For eksempel, når man multipliserer en vektor med 4
elementer med en 4x6
matrise, behandles vektoren som en 1x4
matrise.
Bildet nedenfor viser strukturen til exam_scores
og coefficients
arrayene brukt i oppgaven:
Swipe to start coding
Du jobber 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 til de resulterende poengene for hver student for å beregne deres endelige poengsum.
-
Beregn prikkproduktet mellom
exam_scores
ogcoefficients
.
Dette vil gi deg de endelige poengene for alle studenter basert på de vektede bidragene fra deres fagpoeng.
Løsning
Takk for tilbakemeldingene dine!
Awesome!
Completion rate improved to 3.7single