Perusmatemaattiset 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ä.
1234567891011import 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}')
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:
123456789101112import 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}')
Jakolasku, vähennyslasku ja muut aritmeettiset operaatiot toimivat samalla tavalla. Tässä on toinen esimerkki, jossa toinen (oikeanpuoleinen) taulukko lähetetään (broadcast):
123456789101112import 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}')
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.
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
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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?
Awesome!
Completion rate improved to 3.7
Perusmatemaattiset 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ä.
1234567891011import 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}')
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:
123456789101112import 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}')
Jakolasku, vähennyslasku ja muut aritmeettiset operaatiot toimivat samalla tavalla. Tässä on toinen esimerkki, jossa toinen (oikeanpuoleinen) taulukko lähetetään (broadcast):
123456789101112import 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}')
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.
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
Kiitos palautteestasi!
single