Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Grundläggande Linjär Algebra | Matematik med NumPy
Numpy-Grunder
Avsnitt 4. Kapitel 3
single

single

Grundläggande Linjär Algebra

Svep för att visa menyn

Linjär algebra är en grundläggande gren av matematiken som spelar en avgörande roll inom olika områden, inklusive maskininlärning, djupinlärning och dataanalys.

Vektorer och matriser

Inom linjär algebra är en vektor en ordnad uppsättning värden. 1D NumPy-arrayer kan effektivt representera vektorer. En matris är en tvådimensionell uppsättning tal, vilket kan representeras av en 2D-array i NumPy.

Du har redan gått igenom addition och subtraktion av vektorer och matriser samt skalär multiplikation i kapitlet "Grundläggande matematiska operationer". Här fokuserar du på andra operationer.

Transponering

Transponering är en operation som vänder en matris över dess diagonal. Det innebär att raderna i matrisen blir kolumner och kolumnerna blir rader.

Transponering

Du kan transponera en matris med attributet .T för en NumPy-array:

12345
import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)

Skalärprodukt

Skalärprodukten är kanske den mest använda linjära algebraoperationen inom maskininlärning och djupinlärning. Skalärprodukten av två vektorer (som måste ha lika många element) är summan av deras elementvisa produkter. Resultatet är en skalär:

Skalärprodukt

Matris­multiplikation

Matris­multiplikation är endast definierad om antalet kolumner i den första matrisen är lika med antalet rader i den andra matrisen. Den resulterande matrisen kommer att ha samma antal rader som den första matrisen och samma antal kolumner som den andra matrisen.

Matris­multiplikation

Som du kan se är varje element i den resulterande matrisen skalärprodukten av två vektorer. Radnumret för elementet motsvarar numret på radvektorn i den första matrisen, och kolumnnumret motsvarar numret på kolumnvektorn i den andra matrisen.

Antalet kolumner i den första matrisen måste vara lika med antalet rader i den andra matrisen, eftersom skalärprodukten kräver att de två vektorerna har samma antal element.

Skalärprodukt och matris­multiplikation i NumPy

NumPy tillhandahåller funktionen dot() för både skalärprodukt och matris­multiplikation. Denna funktion tar två arrayer som argument.

Du kan dock även använda operatorn @ mellan två arrayer för att uppnå samma resultat.

12345678910111213
import 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)

Om det högra argumentet vid matris­multiplikation är en vektor (1D-array), behandlar NumPy den som en matris där sista dimensionen är 1. Vid multiplikation av en 6x4-matris med en vektor med 4 element betraktas vektorn som en 4x1-matris.

Om det vänstra argumentet vid matris­multiplikation är en vektor, behandlar NumPy den som en matris där första dimensionen är 1. Vid multiplikation av en vektor med 4 element med en 4x6-matris behandlas vektorn som en 1x4-matris.

Bilden nedan visar strukturen för arrayerna exam_scores och coefficients som används i uppgiften:

Exams coefficients
Uppgift

Svep för att börja koda

Varje elevs slutbetyg beräknas genom att multiplicera deras ämnespoäng med respektive koefficienter och summera resultaten. Prudukten av två vektorer (dot product) utför båda dessa operationer samtidigt.

Beräkna prudukten av exam_scores och coefficients för att få slutbetygen för alla tre elever.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 3
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt