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

bookPerusmatemaattiset Operaatiot

Nyt kun tunnet broadcasting-käsitteen, tarkastellaan joitakin perusmatemaattisia operaatioita NumPy-kirjastossa.

Skalaariset operaatiot

Muista, että broadcasting mahdollistaa matemaattisten operaatioiden suorittamisen kahden yhteensopivan muotoisen taulukon välillä tai taulukon ja skalaarin välillä.

1234567891011
import numpy as np array = np.array([1, 2, 3, 4]) # Scalar addition result_add_scalar = array + 2 print(f'Scalar addition: {result_add_scalar}') # Scalar multiplication result_mul_scalar = array * 3 print(f'Scalar multiplication: {result_mul_scalar}') # Raising an array to a scalar power result_power_scalar = array ** 3 print(f'Scalar exponentiation: {result_power_scalar}')
copy

Kuten huomaat, jokainen operaatio suoritetaan alkiokohtaisesti taulukolle. Käytännössä skalaariluku lähetetään (broadcast) taulukoksi, jolla on sama muoto kuin alkuperäisellä array:lla, ja kaikki alkiot ovat samaa lukua. Näin ollen operaatio suoritetaan jokaiselle kahden taulukon vastaavalle alkioparille.

Operaatiot kahden taulukon välillä

Jos kahden taulukon muodot ovat yhteensopivia, suoritetaan lähetys (broadcasting) tarvittaessa, ja jälleen kerran operaatio suoritetaan alkiokohtaisesti:

123456789101112
import numpy as np arr1 = np.array([1, 2, 3, 4]) arr2 = np.array([5, 6, 7, 8]) # Element-wise addition result_add = arr1 + arr2 print(f'Element-wise addition: {result_add}') # Element-wise multiplication result_mul = arr1 * arr2 print(f'Element-wise multiplication: {result_mul}') # Element-wise exponentiation (raising to power) result_power = arr1 ** arr2 print(f'Element-wise exponentiation: {result_power}')
copy

Jakolasku, vähennyslasku ja muut aritmeettiset operaatiot toimivat samalla tavalla. Tässä on toinen esimerkki, jossa toinen (oikeanpuoleinen) taulukko lähetetään (broadcast):

123456789101112
import numpy as np arr1 = np.array([[1, 2, 3], [4, 5, 6]]) arr2 = np.array([5, 6, 7]) # Element-wise addition result_add = arr1 + arr2 print(f'Element-wise addition: {result_add}') # Element-wise multiplication result_mul = arr1 * arr2 print(f'Element-wise multiplication: {result_mul}') # Element-wise exponentiation (raising to power) result_power = arr1 ** arr2 print(f'Element-wise exponentiation:\n{result_power}')
copy

arr_2 lähetetään (broadcast) kaksiulotteiseksi taulukoksi, jossa on kaksi identtistä riviä, joista jokainen sisältää taulukon [5, 6, 7].

Sovellukset

Tällaiset matemaattiset operaatiot ovat olennaisia tehtävissä, kuten skaalaus, normalisointi ja datan muuntaminen koneoppimisessa ja tilastollisessa analyysissä. Ne mahdollistavat tehokkaat alkiokohtaiset operaatiot aineistojen yhdistämiseen, numeeristen simulointien suorittamiseen sekä suodattimien soveltamiseen kuva- ja signaalinkäsittelyssä. Lisäksi näitä operaatioita käytetään laajasti tieteellisessä laskennassa ja dataohjautuvissa sovelluksissa.

Tehtävä

Swipe to start coding

Analysoit neljännesvuosittaista myyntidataa kahdelle tuotteelle vuosina 2021 ja 2022, jotka on tallennettu kahteen 2D-taulukkoon:

  • sales_data_2021: kunkin tuotteen neljännesvuosittaiset myynnit vuonna 2021, jokainen rivi edustaa tiettyä tuotetta;
  • sales_data_2022: kunkin tuotteen neljännesvuosittaiset myynnit vuonna 2022, jokainen rivi edustaa tiettyä tuotetta.

Laske kullekin tuotteelle neljännesvuosittainen liikevaihdon kasvu prosentteina.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2
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 more about how broadcasting works with arrays of different shapes?

What happens if the shapes of the arrays are not compatible for broadcasting?

Can you give more real-world examples where broadcasting is useful?

close

Awesome!

Completion rate improved to 3.7

bookPerusmatemaattiset Operaatiot

Pyyhkäise näyttääksesi valikon

Nyt kun tunnet broadcasting-käsitteen, tarkastellaan joitakin perusmatemaattisia operaatioita NumPy-kirjastossa.

Skalaariset operaatiot

Muista, että broadcasting mahdollistaa matemaattisten operaatioiden suorittamisen kahden yhteensopivan muotoisen taulukon välillä tai taulukon ja skalaarin välillä.

1234567891011
import numpy as np array = np.array([1, 2, 3, 4]) # Scalar addition result_add_scalar = array + 2 print(f'Scalar addition: {result_add_scalar}') # Scalar multiplication result_mul_scalar = array * 3 print(f'Scalar multiplication: {result_mul_scalar}') # Raising an array to a scalar power result_power_scalar = array ** 3 print(f'Scalar exponentiation: {result_power_scalar}')
copy

Kuten huomaat, jokainen operaatio suoritetaan alkiokohtaisesti taulukolle. Käytännössä skalaariluku lähetetään (broadcast) taulukoksi, jolla on sama muoto kuin alkuperäisellä array:lla, ja kaikki alkiot ovat samaa lukua. Näin ollen operaatio suoritetaan jokaiselle kahden taulukon vastaavalle alkioparille.

Operaatiot kahden taulukon välillä

Jos kahden taulukon muodot ovat yhteensopivia, suoritetaan lähetys (broadcasting) tarvittaessa, ja jälleen kerran operaatio suoritetaan alkiokohtaisesti:

123456789101112
import numpy as np arr1 = np.array([1, 2, 3, 4]) arr2 = np.array([5, 6, 7, 8]) # Element-wise addition result_add = arr1 + arr2 print(f'Element-wise addition: {result_add}') # Element-wise multiplication result_mul = arr1 * arr2 print(f'Element-wise multiplication: {result_mul}') # Element-wise exponentiation (raising to power) result_power = arr1 ** arr2 print(f'Element-wise exponentiation: {result_power}')
copy

Jakolasku, vähennyslasku ja muut aritmeettiset operaatiot toimivat samalla tavalla. Tässä on toinen esimerkki, jossa toinen (oikeanpuoleinen) taulukko lähetetään (broadcast):

123456789101112
import numpy as np arr1 = np.array([[1, 2, 3], [4, 5, 6]]) arr2 = np.array([5, 6, 7]) # Element-wise addition result_add = arr1 + arr2 print(f'Element-wise addition: {result_add}') # Element-wise multiplication result_mul = arr1 * arr2 print(f'Element-wise multiplication: {result_mul}') # Element-wise exponentiation (raising to power) result_power = arr1 ** arr2 print(f'Element-wise exponentiation:\n{result_power}')
copy

arr_2 lähetetään (broadcast) kaksiulotteiseksi taulukoksi, jossa on kaksi identtistä riviä, joista jokainen sisältää taulukon [5, 6, 7].

Sovellukset

Tällaiset matemaattiset operaatiot ovat olennaisia tehtävissä, kuten skaalaus, normalisointi ja datan muuntaminen koneoppimisessa ja tilastollisessa analyysissä. Ne mahdollistavat tehokkaat alkiokohtaiset operaatiot aineistojen yhdistämiseen, numeeristen simulointien suorittamiseen sekä suodattimien soveltamiseen kuva- ja signaalinkäsittelyssä. Lisäksi näitä operaatioita käytetään laajasti tieteellisessä laskennassa ja dataohjautuvissa sovelluksissa.

Tehtävä

Swipe to start coding

Analysoit neljännesvuosittaista myyntidataa kahdelle tuotteelle vuosina 2021 ja 2022, jotka on tallennettu kahteen 2D-taulukkoon:

  • sales_data_2021: kunkin tuotteen neljännesvuosittaiset myynnit vuonna 2021, jokainen rivi edustaa tiettyä tuotetta;
  • sales_data_2022: kunkin tuotteen neljännesvuosittaiset myynnit vuonna 2022, jokainen rivi edustaa tiettyä tuotetta.

Laske kullekin tuotteelle neljännesvuosittainen liikevaihdon kasvu prosentteina.

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

single

some-alt