Grundläggande Linjär Algebra med NumPy
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. Endimensionella NumPy-arrayer kan effektivt representera vektorer. En matris är en tvådimensionell uppsättning tal, vilket kan representeras av en tvådimensionell array i NumPy.
Vi har redan behandlat addition och subtraktion av vektorer och matriser samt skalär multiplikation i kapitlet "Grundläggande matematiska operationer". Här fokuserar vi 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.
Du kan transponera en matris med attributet .T för 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)
Punktprodukt
Punktprodukten är kanske den mest använda linjära algebraoperationen inom maskininlärning och djupinlärning. Punktprodukten av två vektorer (som måste ha lika många element) är summan av deras elementvisa produkter. Resultatet är en skalär:
Matrismultiplikation
Matrismultiplikation ä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.
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 matrismultiplikation i NumPy
NumPy tillhandahåller funktionen dot() för både skalärprodukt och matrismultiplikation. Denna funktion tar två arrayer som argument.
Du kan dock även använda operatorn @ mellan två arrayer för att uppnå samma 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)
Om det högra argumentet vid matrismultiplikation är en vektor (1D-array), behandlar NumPy det som en matris där sista dimensionen är 1. Till exempel, vid multiplikation av en 6x4-matris med en vektor med 4 element, betraktas vektorn som en 4x1-matris.
Om det vänstra argumentet vid matrismultiplikation är en vektor, behandlar NumPy det som en matris där första dimensionen är 1. Till exempel, 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:
Swipe to start coding
Du arbetar med arrayen exam_scores, som innehåller simulerade provresultat för tre studenter (varje rad representerar en student) inom tre ämnen (varje kolumn representerar ett ämne).
- Multiplicera resultaten för varje ämnesprov med respektive koefficient.
- Lägg ihop de resulterande poängen för varje student för att beräkna deras slutgiltiga poäng.
- Beräkna skalärprodukten mellan
exam_scoresochcoefficients.
Detta ger dig de slutgiltiga poängen för alla studenter baserat på de viktade bidragen från deras ämnesresultat.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Grundläggande Linjär Algebra med NumPy
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. Endimensionella NumPy-arrayer kan effektivt representera vektorer. En matris är en tvådimensionell uppsättning tal, vilket kan representeras av en tvådimensionell array i NumPy.
Vi har redan behandlat addition och subtraktion av vektorer och matriser samt skalär multiplikation i kapitlet "Grundläggande matematiska operationer". Här fokuserar vi 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.
Du kan transponera en matris med attributet .T för 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)
Punktprodukt
Punktprodukten är kanske den mest använda linjära algebraoperationen inom maskininlärning och djupinlärning. Punktprodukten av två vektorer (som måste ha lika många element) är summan av deras elementvisa produkter. Resultatet är en skalär:
Matrismultiplikation
Matrismultiplikation ä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.
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 matrismultiplikation i NumPy
NumPy tillhandahåller funktionen dot() för både skalärprodukt och matrismultiplikation. Denna funktion tar två arrayer som argument.
Du kan dock även använda operatorn @ mellan två arrayer för att uppnå samma 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)
Om det högra argumentet vid matrismultiplikation är en vektor (1D-array), behandlar NumPy det som en matris där sista dimensionen är 1. Till exempel, vid multiplikation av en 6x4-matris med en vektor med 4 element, betraktas vektorn som en 4x1-matris.
Om det vänstra argumentet vid matrismultiplikation är en vektor, behandlar NumPy det som en matris där första dimensionen är 1. Till exempel, 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:
Swipe to start coding
Du arbetar med arrayen exam_scores, som innehåller simulerade provresultat för tre studenter (varje rad representerar en student) inom tre ämnen (varje kolumn representerar ett ämne).
- Multiplicera resultaten för varje ämnesprov med respektive koefficient.
- Lägg ihop de resulterande poängen för varje student för att beräkna deras slutgiltiga poäng.
- Beräkna skalärprodukten mellan
exam_scoresochcoefficients.
Detta ger dig de slutgiltiga poängen för alla studenter baserat på de viktade bidragen från deras ämnesresultat.
Lösning
Tack för dina kommentarer!
single