Grundlæggende Matematiske Operationer
Nu hvor du er bekendt med konceptet broadcasting, lad os diskutere nogle grundlæggende matematiske operationer i NumPy.
Skalaroperationer
Husk, broadcasting giver dig mulighed for at udføre matematiske operationer mellem to arrays af kompatible former eller mellem et array og en skalar.
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}')
Som du kan se, udføres hver operation elementvis på arrayet. I det væsentlige udsendes en skalar til et array med samme form som vores oprindelige array
, hvor alle elementerne er det samme tal. Derfor udføres operationen på hvert par af tilsvarende elementer i de to arrays.
Operationer Mellem To Arrays
Hvis formene af to arrays er kompatible, udføres udsendelse om nødvendigt, og igen udføres en operation elementvis:
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}')
Division, subtraktion og andre aritmetiske operationer fungerer på en lignende måde. Her er et andet eksempel, hvor den anden (højre) array bliver broadcastet:
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
bliver broadcastet til en 2D-array med to identiske rækker, hver indeholdende arrayen [5, 6, 7]
.
Anvendelser
Sådanne matematiske operationer er essentielle for opgaver som skalering, normalisering og transformation af data i maskinlæring og statistisk analyse. De muliggør effektive elementvise operationer til at kombinere datasæt, udføre numeriske simuleringer og anvende filtre i billed- og signalbehandling. Desuden er disse operationer bredt anvendt i videnskabelig computing og datadrevne applikationer.
Swipe to start coding
Du analyserer kvartalsvise salg data for to produkter i 2021 og 2022, gemt i to 2D arrays:
sales_data_2021
: kvartalsvise salg for hvert produkt i 2021, hvor hver række repræsenterer et specifikt produkt;sales_data_2022
: kvartalsvise salg for hvert produkt i 2022, hvor hver række repræsenterer et specifikt produkt.
Beregn den kvartalsvise omsætningsvækst for hvert produkt i procent.
Løsning
Tak for dine kommentarer!