Basis Wiskundige Bewerkingen
Nu je bekend bent met het concept van broadcasting, laten we enkele basis wiskundige bewerkingen in NumPy bespreken.
Scalaire Operaties
Vergeet niet, broadcasting stelt je in staat om wiskundige bewerkingen uit te voeren tussen twee arrays van compatibele vormen of tussen een array en een scalaire.
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}')
Zoals je kunt zien, wordt elke bewerking element-gewijs uitgevoerd op de array. In wezen wordt een scalar uitgezonden naar een array met dezelfde vorm als onze oorspronkelijke array
, waarbij alle elementen hetzelfde getal zijn. Daarom wordt de bewerking uitgevoerd op elk paar van overeenkomende elementen van de twee arrays.
Bewerkingen Tussen Twee Arrays
Als de vormen van twee arrays compatibel zijn, wordt indien nodig broadcasting uitgevoerd, en opnieuw wordt een bewerking element-gewijs uitgevoerd:
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}')
Deling, aftrekking en andere rekenkundige bewerkingen werken op een vergelijkbare manier. Hier is een ander voorbeeld waarbij de tweede (rechter) array wordt uitgezonden:
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
wordt uitgezonden naar een 2D-array met twee identieke rijen, elk met de array [5, 6, 7]
.
Toepassingen
Dergelijke wiskundige bewerkingen zijn essentieel voor taken zoals schalen, normaliseren en transformeren van gegevens in machine learning en statistische analyse. Ze maken efficiënte elementgewijze bewerkingen mogelijk voor het combineren van datasets, uitvoeren van numerieke simulaties en toepassen van filters in beeld- en signaalverwerking. Bovendien worden deze bewerkingen veel gebruikt in wetenschappelijk rekenen en datagestuurde toepassingen.
Swipe to start coding
Je analyseert de kwartaalverkoop gegevens voor twee producten in 2021 en 2022, opgeslagen in twee 2D-arrays:
sales_data_2021
: kwartaalverkoop voor elk product in 2021, waarbij elke rij een specifiek product vertegenwoordigt;sales_data_2022
: kwartaalverkoop voor elk product in 2022, waarbij elke rij een specifiek product vertegenwoordigt.
Bereken de kwartaalomzetgroei voor elk product in procenten.
Oplossing
Bedankt voor je feedback!