single
Grundlæggende Lineær Algebra
Stryg for at vise menuen
Lineær algebra er en grundlæggende gren af matematik, der spiller en afgørende rolle inden for forskellige områder, herunder maskinlæring, dyb læring og dataanalyse.
Vektorer og matricer
I lineær algebra er en vektor et ordnet sæt af værdier. 1D NumPy-arrays kan effektivt repræsentere vektorer. En matrix er et todimensionelt array af tal, som kan repræsenteres af et 2D-array i NumPy.
Du har allerede gennemgået vektor- og matrixaddition og -subtraktion samt skalarmultiplikation i kapitlet "Grundlæggende matematiske operationer". Her vil du fokusere på andre operationer.
Transponering
Transponering er en operation, der vender en matrix over dens diagonal. Med andre ord omdanner den rækkerne i matricen til kolonner og kolonnerne til rækker.
Du kan transponere en matrix ved at bruge attributten .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)
Prikprodukt
Prikproduktet er måske den mest anvendte lineære algebraoperation inden for maskinlæring og dyb læring. Prikproduktet af to vektorer (som skal have et ens antal elementer) er summen af deres elementvise produkter. Resultatet er en skalar:
Matrixmultiplikation
Matrixmultiplikation er kun defineret, hvis antallet af kolonner i den første matrix er lig antallet af rækker i den anden matrix. Den resulterende matrix vil have samme antal rækker som den første matrix og samme antal kolonner som den anden matrix.
Som du kan se, er hvert element i den resulterende matrix prikproduktet af to vektorer. Rækkenummeret for elementet svarer til nummeret på rækkevektoren i den første matrix, og kolonnenummeret svarer til nummeret på kolonnevektoren i den anden matrix.
Antallet af kolonner i den første matrix skal være lig antallet af rækker i den anden matrix, da prikproduktet kræver, at de to vektorer har samme antal elementer.
Prikprodukt og matrixmultiplikation i NumPy
NumPy tilbyder funktionen dot() til både prikprodukt og matrixmultiplikation. Denne funktion tager to arrays som argumenter.
Du kan dog også bruge operatoren @ mellem to arrays for at opnå 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øjre argument i matrixmultiplikation er en vektor (1D-array), behandler NumPy den som en matrix, hvor sidste dimension er 1. Når man multiplicerer en 6x4 matrix med en vektor med 4 elementer, betragtes vektoren som en 4x1 matrix.
Hvis venstre argument i matrixmultiplikation er en vektor, behandler NumPy den som en matrix, hvor første dimension er 1. Når man multiplicerer en vektor med 4 elementer med en 4x6 matrix, behandles vektoren som en 1x4 matrix.
Billedet nedenfor viser strukturen af arraysene exam_scores og coefficients, som bruges i opgaven:
Swipe to start coding
Hver elevs endelige score beregnes ved at multiplicere deres faglige resultater med de respektive koefficienter og summere resultaterne. Prikproduktet udfører begge operationer på én gang.
Beregn prikproduktet mellem exam_scores og coefficients for at få de endelige scores for alle tre elever.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat