import numpy as np
a = np.array([[1, 2], [5, 6], [9, 10]])
b = a + 4
print(b)
c = 2 ** a
print(c)[[ 5 6]
[ 9 10]
[13 14]]
[[ 2 4]
[ 32 64]
[ 512 1024]]
Rozważane warianty są przykładowe.
Wariant 1 - skalar-tablica - wykonanie operacji na każdym elemencie tablicy
import numpy as np
a = np.array([[1, 2], [5, 6], [9, 10]])
b = a + 4
print(b)
c = 2 ** a
print(c)[[ 5 6]
[ 9 10]
[13 14]]
[[ 2 4]
[ 32 64]
[ 512 1024]]

Wariant 2 - dwie tablice - “gdy jedna z tablic może być rozszerzona” (oba wymiary są równe lub jeden z nich jest równy 1)
https://numpy.org/doc/stable/user/basics.broadcasting.html
import numpy as np
a = np.array([[1, 2], [5, 6]])
b = np.array([9, 2])
r1 = a + b
print(r1)
r2 = a / b
print(r2)
c = np.array([[4], [-2]])
r3 = a + c
print(r3)
r4 = c / a
print(r4)[[10 4]
[14 8]]
[[0.11111111 1. ]
[0.55555556 3. ]]
[[5 6]
[3 4]]
[[ 4. 2. ]
[-0.4 -0.33333333]]

Wariant 3 - “kolumna” i “wiersz”
import numpy as np
a = np.array([[5, 2, -3]]).T
b = np.array([3, -2, 1, 2, 4])
print(a+b)
print(b+a)
print(a*b)[[ 8 3 6 7 9]
[ 5 0 3 4 6]
[ 0 -5 -2 -1 1]]
[[ 8 3 6 7 9]
[ 5 0 3 4 6]
[ 0 -5 -2 -1 1]]
[[ 15 -10 5 10 20]
[ 6 -4 2 4 8]
[ -9 6 -3 -6 -12]]
