Perusmatemaattiset Operaatiot
Nyt kun olet perehtynyt broadcasting-konseptiin, keskustellaan joistakin perusmatemaattisista operaatioista NumPy:ssä.
Skalaariset operaatiot
Muista, että broadcasting mahdollistaa matemaattisten operaatioiden suorittamisen kahden yhteensopivan muotoisen taulukon tai taulukon ja skalaarin välillä.
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}')
Kuten näet, jokainen operaatio suoritetaan elementtikohtaisesti taulukossa. Käytännössä skalaari lähetetään taulukkoon, jonka muoto on sama kuin alkuperäisen array
-taulukkomme, jossa kaikki elementit ovat samaa numeroa. Siksi operaatio suoritetaan jokaiselle kahden taulukon vastaavalle elementtiparille.
Operaatioita kahden taulukon välillä
Jos kahden taulukon muodot ovat yhteensopivia, suoritetaan lähetys tarvittaessa, ja jälleen kerran operaatio suoritetaan elementtikohtaisesti:
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}')
Jakolasku, vähennyslasku ja muut aritmeettiset operaatiot toimivat samalla tavalla. Tässä on toinen esimerkki, jossa toinen (oikea) taulukko lähetetään:
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}')
arr_2
lähetetään 2D-taulukoksi, jossa on kaksi identtistä riviä, joista jokainen sisältää taulukon [5, 6, 7]
.
Sovellukset
Tällaiset matemaattiset operaatiot ovat olennaisia tehtäviä, kuten skaalaus, normalisointi ja datan muuntaminen koneoppimisessa ja tilastollisessa analyysissä. Ne mahdollistavat tehokkaat elementtikohtaiset operaatiot datasetien yhdistämiseen, numeeristen simulaatioiden suorittamiseen ja suodattimien soveltamiseen kuva- ja signaalinkäsittelyssä. Lisäksi näitä operaatioita käytetään laajalti tieteellisessä laskennassa ja datalähtöisissä 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ännesvuosittainen myynti vuonna 2021, jokainen rivi edustaa tiettyä tuotetta;sales_data_2022
: kunkin tuotteen neljännesvuosittainen myynti vuonna 2022, jokainen rivi edustaa tiettyä tuotetta.
Laske kunkin tuotteen neljännesvuosittainen liikevaihdon kasvu prosentteina.
Ratkaisu
Kiitos palautteestasi!