Peruslineaarialgebra NumPylla
Lineaarialgebra on matematiikan keskeinen osa-alue, jolla on ratkaiseva rooli useilla aloilla, kuten koneoppimisessa, syväoppimisessa ja data-analyysissä.
Vektorit ja matriisit
Lineaarialgebrassa vektori on järjestetty arvojoukko. 1D NumPy -taulukot voivat tehokkaasti esittää vektoreita. Matriisi on kaksiulotteinen lukutaulukko, jonka voi esittää 2D-taulukkona NumPyssa.
Olemme jo käsitelleet vektori- ja matriisilaskujen yhteen- ja vähennyslaskun sekä skalaarikertolaskun luvussa "Perusmatemaattiset operaatiot". Tässä keskitymme muihin operaatioihin.
Transponointi
Transponointi on operaatio, jossa matriisi käännetään diagonaalinsa suhteen. Toisin sanoen, se muuttaa matriisin rivit sarakkeiksi ja sarakkeet riveiksi.
Voit transponoida matriisin käyttämällä NumPy-taulukon .T-attribuuttia:
12345import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
Pistetulo
Pistetulo on ehkä yleisimmin käytetty lineaarialgebran operaatio koneoppimisessa ja syväoppimisessa. Kahden vektorin pistetulo (joilla täytyy olla yhtä monta alkiota) on niiden alkiokohtaisten tulojen summa. Tuloksena on skalaariluku:
Matriisikertolasku
Matriisikertolasku on määritelty vain, jos ensimmäisen matriisin sarakkeiden määrä on yhtä suuri kuin toisen matriisin rivien määrä. Tuloksena saatavassa matriisissa on sama määrä rivejä kuin ensimmäisessä matriisissa ja sama määrä sarakkeita kuin toisessa matriisissa.
Kuten huomaat, jokainen tuloksena saadun matriisin alkio on kahden vektorin pistetulo. Alkion rivinumero vastaa ensimmäisen matriisin rivi-vektorin numeroa ja sarakenumero toisen matriisin sarake-vektorin numeroa.
Ensimmäisen matriisin sarakkeiden määrän on oltava yhtä suuri kuin toisen matriisin rivien määrä, koska pistetulo vaatii, että molemmissa vektoreissa on sama määrä alkioita.
Pistetulo ja matriisikertolasku NumPyssa
NumPy tarjoaa dot()-funktion sekä pistetulon että matriisikertolaskun suorittamiseen. Tämä funktio ottaa kaksi taulukkoa argumentteinaan.
Voit kuitenkin käyttää myös @ operaattoria kahden taulukon välillä saavuttaaksesi saman tuloksen.
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)
Jos oikea argumentti matriisikertolaskussa on vektori (1D-taulukko), NumPy käsittelee sitä matriisina, jossa viimeinen ulottuvuus on 1. Esimerkiksi, kun kerrotaan 6x4-matriisi vektorilla, jossa on 4 alkiota, vektoria pidetään 4x1-matriisina.
Jos vasen argumentti matriisikertolaskussa on vektori, NumPy käsittelee sitä matriisina, jossa ensimmäinen ulottuvuus on 1. Esimerkiksi, kun kerrotaan vektori, jossa on 4 alkiota, 4x6-matriisilla, vektoria pidetään 1x4-matriisina.
Alla oleva kuva esittää tehtävässä käytettyjen exam_scores- ja coefficients-taulukoiden rakennetta:
Swipe to start coding
Työskentelet exam_scores-taulukon kanssa, joka sisältää kolmen opiskelijan simuloidut koepisteet (jokainen rivi edustaa opiskelijaa) kolmessa aineessa (jokainen sarake edustaa ainetta).
- Kerro kunkin aineen koepisteet vastaavalla kertoimella.
- Laske jokaiselle opiskelijalle saadut pisteet yhteen saadaksesi heidän lopullisen pistemääränsä.
- Laske pistemäärien pistetulo
exam_scores- jacoefficients-taulukoiden välillä.
Tämä antaa sinulle kaikkien opiskelijoiden lopulliset pistemäärät ainekohtaisten pisteiden painotettujen osuuksien perusteella.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Peruslineaarialgebra NumPylla
Pyyhkäise näyttääksesi valikon
Lineaarialgebra on matematiikan keskeinen osa-alue, jolla on ratkaiseva rooli useilla aloilla, kuten koneoppimisessa, syväoppimisessa ja data-analyysissä.
Vektorit ja matriisit
Lineaarialgebrassa vektori on järjestetty arvojoukko. 1D NumPy -taulukot voivat tehokkaasti esittää vektoreita. Matriisi on kaksiulotteinen lukutaulukko, jonka voi esittää 2D-taulukkona NumPyssa.
Olemme jo käsitelleet vektori- ja matriisilaskujen yhteen- ja vähennyslaskun sekä skalaarikertolaskun luvussa "Perusmatemaattiset operaatiot". Tässä keskitymme muihin operaatioihin.
Transponointi
Transponointi on operaatio, jossa matriisi käännetään diagonaalinsa suhteen. Toisin sanoen, se muuttaa matriisin rivit sarakkeiksi ja sarakkeet riveiksi.
Voit transponoida matriisin käyttämällä NumPy-taulukon .T-attribuuttia:
12345import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
Pistetulo
Pistetulo on ehkä yleisimmin käytetty lineaarialgebran operaatio koneoppimisessa ja syväoppimisessa. Kahden vektorin pistetulo (joilla täytyy olla yhtä monta alkiota) on niiden alkiokohtaisten tulojen summa. Tuloksena on skalaariluku:
Matriisikertolasku
Matriisikertolasku on määritelty vain, jos ensimmäisen matriisin sarakkeiden määrä on yhtä suuri kuin toisen matriisin rivien määrä. Tuloksena saatavassa matriisissa on sama määrä rivejä kuin ensimmäisessä matriisissa ja sama määrä sarakkeita kuin toisessa matriisissa.
Kuten huomaat, jokainen tuloksena saadun matriisin alkio on kahden vektorin pistetulo. Alkion rivinumero vastaa ensimmäisen matriisin rivi-vektorin numeroa ja sarakenumero toisen matriisin sarake-vektorin numeroa.
Ensimmäisen matriisin sarakkeiden määrän on oltava yhtä suuri kuin toisen matriisin rivien määrä, koska pistetulo vaatii, että molemmissa vektoreissa on sama määrä alkioita.
Pistetulo ja matriisikertolasku NumPyssa
NumPy tarjoaa dot()-funktion sekä pistetulon että matriisikertolaskun suorittamiseen. Tämä funktio ottaa kaksi taulukkoa argumentteinaan.
Voit kuitenkin käyttää myös @ operaattoria kahden taulukon välillä saavuttaaksesi saman tuloksen.
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)
Jos oikea argumentti matriisikertolaskussa on vektori (1D-taulukko), NumPy käsittelee sitä matriisina, jossa viimeinen ulottuvuus on 1. Esimerkiksi, kun kerrotaan 6x4-matriisi vektorilla, jossa on 4 alkiota, vektoria pidetään 4x1-matriisina.
Jos vasen argumentti matriisikertolaskussa on vektori, NumPy käsittelee sitä matriisina, jossa ensimmäinen ulottuvuus on 1. Esimerkiksi, kun kerrotaan vektori, jossa on 4 alkiota, 4x6-matriisilla, vektoria pidetään 1x4-matriisina.
Alla oleva kuva esittää tehtävässä käytettyjen exam_scores- ja coefficients-taulukoiden rakennetta:
Swipe to start coding
Työskentelet exam_scores-taulukon kanssa, joka sisältää kolmen opiskelijan simuloidut koepisteet (jokainen rivi edustaa opiskelijaa) kolmessa aineessa (jokainen sarake edustaa ainetta).
- Kerro kunkin aineen koepisteet vastaavalla kertoimella.
- Laske jokaiselle opiskelijalle saadut pisteet yhteen saadaksesi heidän lopullisen pistemääränsä.
- Laske pistemäärien pistetulo
exam_scores- jacoefficients-taulukoiden välillä.
Tämä antaa sinulle kaikkien opiskelijoiden lopulliset pistemäärät ainekohtaisten pisteiden painotettujen osuuksien perusteella.
Ratkaisu
Kiitos palautteestasi!
single