Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Peruslineaarialgebra Numpyn Avulla | Laskenta Numpyn Avulla
Ultimate NumPy

bookPeruslineaarialgebra Numpyn Avulla

Lineaarialgebra on matematiikan perusala, jolla on keskeinen 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, joka kääntää matriisin diagonaalinsa suhteen. Toisin sanoen se muuttaa matriisin rivit sarakkeiksi ja sarakkeet riveiksi.

Voit transponoida matriisin käyttämällä NumPy-taulukon .T-attribuuttia:

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

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. Tulos 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 saatavalla matriisilla on sama määrä rivejä kuin ensimmäisellä matriisilla ja sama määrä sarakkeita kuin toisella matriisilla.

Kuten huomaat, jokainen tuloksen 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.

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)
copy

Jos oikeanpuoleinen 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 vasemmanpuoleinen argumentti matriisikertolaskussa on vektori, NumPy käsittelee sitä matriisina, jossa ensimmäinen ulottuvuus on 1. Esimerkiksi, kun vektori, jossa on 4 alkiota, kerrotaan 4x6-matriisilla, vektoria käsitellään 1x4-matriisina.

Alla oleva kuva esittää exam_scores- ja coefficients-taulukoiden rakennetta, joita käytetään tehtävässä:

Tehtävä

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).

  1. Kerro jokaisen aineen koepisteet vastaavalla kertoimella.
  2. Laske saadut pisteet yhteen jokaiselle opiskelijalle heidän lopullisen pistemääränsä saamiseksi.
  3. Laske pistemäärien pistetulo exam_scores- ja coefficients-taulukoiden välillä.

Tämä antaa sinulle lopulliset pistemäärät kaikille opiskelijoille heidän ainekohtaisten pisteidensä painotettujen osuuksien perusteella.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 3.7

bookPeruslineaarialgebra Numpyn Avulla

Pyyhkäise näyttääksesi valikon

Lineaarialgebra on matematiikan perusala, jolla on keskeinen 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, joka kääntää matriisin diagonaalinsa suhteen. Toisin sanoen se muuttaa matriisin rivit sarakkeiksi ja sarakkeet riveiksi.

Voit transponoida matriisin käyttämällä NumPy-taulukon .T-attribuuttia:

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

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. Tulos 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 saatavalla matriisilla on sama määrä rivejä kuin ensimmäisellä matriisilla ja sama määrä sarakkeita kuin toisella matriisilla.

Kuten huomaat, jokainen tuloksen 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.

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)
copy

Jos oikeanpuoleinen 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 vasemmanpuoleinen argumentti matriisikertolaskussa on vektori, NumPy käsittelee sitä matriisina, jossa ensimmäinen ulottuvuus on 1. Esimerkiksi, kun vektori, jossa on 4 alkiota, kerrotaan 4x6-matriisilla, vektoria käsitellään 1x4-matriisina.

Alla oleva kuva esittää exam_scores- ja coefficients-taulukoiden rakennetta, joita käytetään tehtävässä:

Tehtävä

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).

  1. Kerro jokaisen aineen koepisteet vastaavalla kertoimella.
  2. Laske saadut pisteet yhteen jokaiselle opiskelijalle heidän lopullisen pistemääränsä saamiseksi.
  3. Laske pistemäärien pistetulo exam_scores- ja coefficients-taulukoiden välillä.

Tämä antaa sinulle lopulliset pistemäärät kaikille opiskelijoille heidän ainekohtaisten pisteidensä painotettujen osuuksien perusteella.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4
single

single

some-alt