Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Lähetys | Matematiikka NumPy:n Kanssa
Lopullinen NumPy
course content

Kurssisisältö

Lopullinen NumPy

Lopullinen NumPy

1. NumPy Perusteet
2. Indeksointi ja Viipalointi
3. Yleisesti Käytetyt NumPy-Funktiot
4. Matematiikka NumPy:n Kanssa

book
Lähetys

Ennen kuin sukellamme NumPyn matemaattisiin operaatioihin, on tärkeää ymmärtää keskeinen käsite — broadcasting.

Kun NumPy käsittelee kahta taulukkoa, se tarkistaa niiden muodot yhteensopivuuden varmistamiseksi, jotta voidaan määrittää, voidaanko ne lähettää yhdessä.

Huomautus

Jos kahdella taulukolla on jo sama muoto, broadcastingia ei tarvita.

Sama määrä ulottuvuuksia

Oletetaan, että meillä on kaksi taulukkoa, joille haluamme suorittaa yhteenlaskun, seuraavilla muodoilla: (2, 3) ja (1, 3). NumPy vertaa kahden taulukon muotoja aloittaen oikeanpuoleisimmasta ulottuvuudesta ja siirtyen vasemmalle. Eli se vertaa ensin 3 ja 3, sitten 2 ja 1.

Kaksi ulottuvuutta katsotaan yhteensopiviksi, jos ne ovat yhtä suuret tai jos toinen niistä on 1:

  • Ulottuvuuksille 3 ja 3, ne ovat yhteensopivia, koska ne ovat yhtä suuret;

  • Ulottuvuuksille 2 ja 1, ne ovat yhteensopivia, koska toinen niistä on 1.

Koska kaikki ulottuvuudet ovat yhteensopivia, muodot katsotaan yhteensopiviksi. Siksi taulukot voidaan lähettää, mikä johtaa vakio yhteenlaskuoperaatioon saman muotoisten matriisien välillä, joka suoritetaan alkioittain.

123456789
import numpy as np array_1 = np.array([[1, 2, 3], [4, 5, 6]]) print(array_1.shape) # Creating a 2D array with 1 row array_2 = np.array([[11, 12, 13]]) print(array_2.shape) # Broadcasting and element-wise addition result = array_1 + array_2 print(result)
copy

Huom

array_2 luodaan 2D-taulukkona, joka sisältää vain yhden rivin, minkä vuoksi sen muoto on (1, 3).

Mutta mitä tapahtuisi, jos loisimme sen 1D-taulukkona, jonka muoto on (3,)?

Eri määrä ulottuvuuksia

Kun yhdellä taulukolla on vähemmän ulottuvuuksia kuin toisella, puuttuvat ulottuvuudet käsitellään kooltaan 1. Esimerkiksi, harkitse kahta taulukkoa, joiden muodot ovat (2, 3) ja (3,). Tässä 3 = 3, ja puuttuva vasen ulottuvuus katsotaan olevan 1, joten muoto (3,) muuttuu muotoon (1, 3). Koska muodot (2, 3) ja (1, 3) ovat yhteensopivia, näitä kahta taulukkoa voidaan lähettää.

123456789
import numpy as np array_1 = np.array([[1, 2, 3], [4, 5, 6]]) print(array_1.shape) # Creating a 1D array array_2 = np.array([11, 12, 13]) print(array_2.shape) # Broadcasting and element-wise addition result = array_1 + array_2 print(result)
copy

Skalaariarvojen lähetys

Matemaattisten operaatioiden lisäksi taulukoiden kanssa voimme suorittaa vastaavia operaatioita myös taulukon ja skalaariarvon (numeron) välillä lähetyksen ansiosta. Tässä tapauksessa taulukolla voi olla mikä tahansa muoto, sillä skalaariarvolla ei ole varsinaista muotoa, ja kaikki sen ulottuvuudet katsotaan olevan 1. Siksi muodot ovat aina yhteensopivia.

123456
import numpy as np array = np.array([[1, 2, 3], [4, 5, 6]]) print(array.shape) # Broadcasting and element-wise addition result = array + 10 print(result)
copy

Yhteensopimattomat muodot

Tarkastellaan myös esimerkkiä yhteensopimattomista muodoista, joissa aritmeettista operaatiota ei voida suorittaa, koska lähetys ei ole mahdollista:

Meillä on 2x3 taulukko ja 1D-taulukko, jonka pituus on 2, eli muoto on (2,). Puuttuva ulottuvuus katsotaan olevan 1, joten muodot ovat (2, 3) ja (1, 2).

Siirryttäessä vasemmalta oikealle: 3 != 2, joten meillä on heti yhteensopimattomat ulottuvuudet, ja siksi yhteensopimattomat muodot. Jos yritämme suorittaa koodin, saamme virheen:

12345678
import numpy as np array_1 = np.array([[1, 2, 3], [4, 5, 6]]) print(array_1.shape) array_2 = np.array([11, 12]) print(array_2.shape) # ValueError result = array_1 + array_2 print(result)
copy
question mark

Valitse kaikki taulukot, joilla on yhteensopivat muodot:

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 1

Kysy tekoälyä

expand
ChatGPT

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

course content

Kurssisisältö

Lopullinen NumPy

Lopullinen NumPy

1. NumPy Perusteet
2. Indeksointi ja Viipalointi
3. Yleisesti Käytetyt NumPy-Funktiot
4. Matematiikka NumPy:n Kanssa

book
Lähetys

Ennen kuin sukellamme NumPyn matemaattisiin operaatioihin, on tärkeää ymmärtää keskeinen käsite — broadcasting.

Kun NumPy käsittelee kahta taulukkoa, se tarkistaa niiden muodot yhteensopivuuden varmistamiseksi, jotta voidaan määrittää, voidaanko ne lähettää yhdessä.

Huomautus

Jos kahdella taulukolla on jo sama muoto, broadcastingia ei tarvita.

Sama määrä ulottuvuuksia

Oletetaan, että meillä on kaksi taulukkoa, joille haluamme suorittaa yhteenlaskun, seuraavilla muodoilla: (2, 3) ja (1, 3). NumPy vertaa kahden taulukon muotoja aloittaen oikeanpuoleisimmasta ulottuvuudesta ja siirtyen vasemmalle. Eli se vertaa ensin 3 ja 3, sitten 2 ja 1.

Kaksi ulottuvuutta katsotaan yhteensopiviksi, jos ne ovat yhtä suuret tai jos toinen niistä on 1:

  • Ulottuvuuksille 3 ja 3, ne ovat yhteensopivia, koska ne ovat yhtä suuret;

  • Ulottuvuuksille 2 ja 1, ne ovat yhteensopivia, koska toinen niistä on 1.

Koska kaikki ulottuvuudet ovat yhteensopivia, muodot katsotaan yhteensopiviksi. Siksi taulukot voidaan lähettää, mikä johtaa vakio yhteenlaskuoperaatioon saman muotoisten matriisien välillä, joka suoritetaan alkioittain.

123456789
import numpy as np array_1 = np.array([[1, 2, 3], [4, 5, 6]]) print(array_1.shape) # Creating a 2D array with 1 row array_2 = np.array([[11, 12, 13]]) print(array_2.shape) # Broadcasting and element-wise addition result = array_1 + array_2 print(result)
copy

Huom

array_2 luodaan 2D-taulukkona, joka sisältää vain yhden rivin, minkä vuoksi sen muoto on (1, 3).

Mutta mitä tapahtuisi, jos loisimme sen 1D-taulukkona, jonka muoto on (3,)?

Eri määrä ulottuvuuksia

Kun yhdellä taulukolla on vähemmän ulottuvuuksia kuin toisella, puuttuvat ulottuvuudet käsitellään kooltaan 1. Esimerkiksi, harkitse kahta taulukkoa, joiden muodot ovat (2, 3) ja (3,). Tässä 3 = 3, ja puuttuva vasen ulottuvuus katsotaan olevan 1, joten muoto (3,) muuttuu muotoon (1, 3). Koska muodot (2, 3) ja (1, 3) ovat yhteensopivia, näitä kahta taulukkoa voidaan lähettää.

123456789
import numpy as np array_1 = np.array([[1, 2, 3], [4, 5, 6]]) print(array_1.shape) # Creating a 1D array array_2 = np.array([11, 12, 13]) print(array_2.shape) # Broadcasting and element-wise addition result = array_1 + array_2 print(result)
copy

Skalaariarvojen lähetys

Matemaattisten operaatioiden lisäksi taulukoiden kanssa voimme suorittaa vastaavia operaatioita myös taulukon ja skalaariarvon (numeron) välillä lähetyksen ansiosta. Tässä tapauksessa taulukolla voi olla mikä tahansa muoto, sillä skalaariarvolla ei ole varsinaista muotoa, ja kaikki sen ulottuvuudet katsotaan olevan 1. Siksi muodot ovat aina yhteensopivia.

123456
import numpy as np array = np.array([[1, 2, 3], [4, 5, 6]]) print(array.shape) # Broadcasting and element-wise addition result = array + 10 print(result)
copy

Yhteensopimattomat muodot

Tarkastellaan myös esimerkkiä yhteensopimattomista muodoista, joissa aritmeettista operaatiota ei voida suorittaa, koska lähetys ei ole mahdollista:

Meillä on 2x3 taulukko ja 1D-taulukko, jonka pituus on 2, eli muoto on (2,). Puuttuva ulottuvuus katsotaan olevan 1, joten muodot ovat (2, 3) ja (1, 2).

Siirryttäessä vasemmalta oikealle: 3 != 2, joten meillä on heti yhteensopimattomat ulottuvuudet, ja siksi yhteensopimattomat muodot. Jos yritämme suorittaa koodin, saamme virheen:

12345678
import numpy as np array_1 = np.array([[1, 2, 3], [4, 5, 6]]) print(array_1.shape) array_2 = np.array([11, 12]) print(array_2.shape) # ValueError result = array_1 + array_2 print(result)
copy
question mark

Valitse kaikki taulukot, joilla on yhteensopivat muodot:

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 1
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?
some-alt