NumPy Math Operation and Broadcasting

  1. NumPy rekenkundige bewerking
  2. NumPy-uitzending

In dit hoofdstuk behandelen we bewerkingen in NumPy, zoals eenvoudige rekenkundige bewerkingen en matrixbewerkingen.

tweelingvlam numerologie
tweelingvlam numerologie

Laten we beginnen met elementaire rekenkundige bewerking.

NumPy rekenkundige bewerking

Optellen, aftrekken, vermenigvuldigen en delen zijn de meest elementaire rekenkundige bewerkingen in NumPy. Ze zijn vergelijkbaar met normale rekenkundige bewerkingen tussen getallen.

import numpy as np
arrayA = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
arrayB = arrayA.T
#array([[1, 2, 3],
#       [4, 5, 6],
#       [7, 8, 9]])

arrayB = arrayA.T
#array([[1, 4, 7],
#       [2, 5, 8],
#       [3, 6, 9]])

arrayA + arrayB
#array([[ 2,  6, 10],
#       [ 6, 10, 14],
#       [10, 14, 18]])

arrayA - arrayB
#array([[ 0, -2, -4],
#       [ 2,  0, -2],
#       [ 4,  2,  0]])

arrayA * arrayB
#array([[ 1,  8, 21],
#       [ 8, 25, 48],
#       [21, 48, 81]])

arrayA / arrayB
#array([[1.        , 0.5       , 0.42857143],
#       [2.        , 1.        , 0.75      ],
#       [2.33333333, 1.33333333, 1.        ]])

Opgemerkt moet worden dat de matrixvermenigvuldiging - * de elementen op dezelfde positie op de twee arrays vermenigvuldigt om het element op dezelfde positie van de resultaatmatrix te krijgen. Het is niet het puntproduct van twee gegeven arrays dat met de np.dot methode moet worden berekend.

np.dot(arrayA, arrayB)
#array([[ 14,  32,  50],
#       [ 32,  77, 122],
#       [ 50, 122, 194]])

NumPy-uitzending

Twee arrays moeten dezelfde vorm hebben in de array math-bewerking. Maar NumPy introduceert het concept van uitzenden om de array indien mogelijk automatisch in te vullen wanneer twee arrays niet dezelfde vorm hebben.

Laat me dit concept uitleggen met voorbeelden,

import numpy as np
arrayA = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
arrayA + 1
#array([[ 2,  3,  4],
#       [ 5,  6,  7],
#       [ 8,  9, 10]])

Hier 1 wordt toegevoegd aan alle elementen van arrayA , of met andere woorden, 1 wordt uitgezonden van de vorm (1, 1) naar dezelfde vorm van arrayA - (3, 3) om de toevoeging van de array mogelijk te maken.

De daadwerkelijke werking is zoals hieronder,

arrayA + np.array([[1,1,1],[1,1,1],[1,1,1]])

Uitzenden in NumPy kan ook worden gebruikt in onderstaande scenario’s,

Twee arrays hebben dezelfde lengte in één dimensie en één array heeft de lengte als 1 in de andere dimensie

Laten we beginnen met een voorbeeld,

arrayC = np.array([10, 11, 12])
arrayA + arrayC
#array([[11, 13, 15],
#       [14, 16, 18],
#       [17, 19, 21]])

De vorm van arryA is (3, 3) en de vorm van arrayC is (3, 1) . Het voldoet aan de criteria voor matrixafmetingen en de gegevens op de enkele rij in arrayC worden naar drie rijen uitgezonden om overeen te komen met de vorm van arrayA.

Het is ook van toepassing als twee arrays dezelfde rijlengte hebben.

arrayD = np.array([[10],[11],[12]])
#array([[10],
#       [11],
#       [12]])
arrayA + arrayD
#array([[11, 12, 13],
#       [15, 16, 17],
#       [19, 20, 21]])