Slušaj robot čitača
Preoblikovanje i rotiranje podataka
u ML-u moramo poravnjati naše ulazne podatke sa ML algoritmom, kako bi ovi dali ispravan izlaz. Iz tog razloga je nekada potrebno promeniti oblik naših podataka
Promena oblika podataka
Koristićemo opet ndarray-e a2 i a3:
[4,5,6]])
a2, a2.shape
[4, 5, 6]]),
(2, 3))
[4, 5, 6],
[7, 8, 9]],
[[10, 11, 12],
[13, 14, 15],
[16, 17, 18]]])
a3, a3.shape
[ 4, 5, 6],
[ 7, 8, 9]],
[[10, 11, 12],
[13, 14, 15],
[16, 17, 18]]]),
(2, 3, 3))
Ako probamo da pomnožimo ova dva ndarray-a:
<ipython-input-22-37d8620f1b2c> in <module>
----> 1 a2 * a3
ValueError: operands could not be broadcast together with shapes (2,3) (2,3,3)
Broadcast je procces sličan mapiranju, gde se elementi jednog array-a mapiraju preko elemenata drugog array-a, naravno da bi to uspelo, array-evi moraju imati kompatabilan oblik, što a2 i a3 nemaju.
Primenom .reshape() metode, možemo promeniti oblik a2, tako da bude kompatabilan sa a3, te da ga možemo broadcastovati preko njega:
a2R
[2],
[3]],
[[4],
[5],
[6]]])
I sada ih možemo pomnožiti:
[ 8, 10, 12],
[ 21, 24, 27]],
[[ 40, 44, 48],
[ 65, 70, 75],
[ 96, 102, 108]]])
[ 8, 10, 12],
[ 21, 24, 27]],
[[ 40, 44, 48],
[ 65, 70, 75],
[ 96, 102, 108]]])
Članak prvi put objavljen: 7.5.2021.
Poslednje izmene: 31.1.2022.
Autor: k.