Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Peruslineaarialgebra | Matematiikka NumPyn Kanssa
Numpy Perusteet
Osio 4. Luku 3
single

single

Peruslineaarialgebra

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 soveltuvat tehokkaasti vektorien esittämiseen. Matriisi on kaksiulotteinen lukutaulukko, jonka voi esittää 2D-taulukkona NumPyssa.

Olet jo käsitellyt vektori- ja matriisilaskujen yhteen- ja vähennyslaskun sekä skalaarikertolaskun luvussa "Peruslaskutoimitukset". Tässä keskityt muihin operaatioihin.

Transponointi

Transponointi on operaatio, joka kääntää matriisin diagonaalinsa suhteen. Toisin sanoen se muuttaa matriisin rivit sarakkeiksi ja sarakkeet riveiksi.

Transponointi

Matriisin voi transponoida 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)

Pistetulo

Pistetulo on ehkä yleisimmin käytetty lineaarialgebran operaatio koneoppimisessa ja syväoppimisessa. Kahden vektorin (joilla täytyy olla yhtä monta alkiota) pistetulo on niiden alkiokohtaisten tulojen summa. Tuloksena on skalaariluku:

Pistetulo

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 yhtä monta riviä kuin ensimmäisessä matriisissa ja yhtä monta sarakea kuin toisessa matriisissa.

Matriisikertolasku

Kuten huomaat, jokainen tulomatriisin alkio on kahden vektorin pistetulo. Alkion rivinumero vastaa ensimmäisen matriisin rivi-vektoria ja sarakenumero toisen matriisin sarake-vektoria.

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ä pistetuloon että matriisikertolaskuun. 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)

Jos oikea argumentti matriisikertolaskussa on vektori (1D-taulukko), NumPy käsittelee sitä matriisina, jossa viimeinen ulottuvuus on 1. 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. Kun kerrotaan vektori, jossa on 4 alkiota, 4x6-matriisilla, vektoria käsitellään 1x4-matriisina.

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

Kokeiden kertoimet
Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Jokaisen opiskelijan lopullinen pistemäärä lasketaan kertomalla heidän ainekohtaiset pisteensä vastaavilla kertoimilla ja summaamalla tulokset. Pistetulo suorittaa molemmat toiminnot yhdellä kertaa.

Laske pistetulo exam_scores- ja coefficients-taulukoiden välillä saadaksesi kaikkien kolmen opiskelijan lopulliset pisteet.

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 3
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

some-alt