Si l'échelle est différente pour chaque axe et qu'elle s'effondre lorsqu'elle est comparée collectivement, je voudrais diviser chaque axe par la valeur maximale ou la valeur totale pour normaliser et comparer.
Vous pouvez le faire avec l'instruction for, mais vous pouvez facilement le faire avec ** keepdims = True **.
J'ai ajouté un axe après sum
, mais ** keepdims ** peut faire la même chose. Je sens qu'il y a quelque chose pour ça.
AAA = np.arange(24).reshape((2,3,4))
print("AAA.shape=", AAA.shape)
print("AAA=", AAA)
sAAA = AAA.sum(-1, keepdims=True)
# sAAA = AAA.sum(-1)[..., np.newaxis]Pareil que.
nAAA = AAA / sAAA
print("\nsAAA.shape=", sAAA.shape)
print("\nnAAA=", nAAA)
mAAA = AAA.max(1, keepdims=True)
# mAAA = AAA.max(1)[:, np.newaxis]Pareil que
nAAA = AAA / mAAA
print("\nmAAA.shape=", mAAA.shape)
print("\nnAAA=", nAAA)
mAAA = AAA.max((0,2), keepdims=True)
nAAA = AAA / mAAA
print("\nsAAA.shape=", sAAA.shape)
print("\nnAAA=", nAAA)
AAA.shape= (2, 3, 4)
AAA= [[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
sAAA.shape= (2, 3, 1)
nAAA= [[[0. 0.16666667 0.33333333 0.5 ]
[0.18181818 0.22727273 0.27272727 0.31818182]
[0.21052632 0.23684211 0.26315789 0.28947368]]
[[0.22222222 0.24074074 0.25925926 0.27777778]
[0.22857143 0.24285714 0.25714286 0.27142857]
[0.23255814 0.24418605 0.25581395 0.26744186]]]
mAAA.shape= (2, 1, 4)
nAAA= [[[0. 0.11111111 0.2 0.27272727]
[0.5 0.55555556 0.6 0.63636364]
[1. 1. 1. 1. ]]
[[0.6 0.61904762 0.63636364 0.65217391]
[0.8 0.80952381 0.81818182 0.82608696]
[1. 1. 1. 1. ]]]
sAAA.shape= (2, 3, 1)
nAAA= [[[0. 0.06666667 0.13333333 0.2 ]
[0.21052632 0.26315789 0.31578947 0.36842105]
[0.34782609 0.39130435 0.43478261 0.47826087]]
[[0.8 0.86666667 0.93333333 1. ]
[0.84210526 0.89473684 0.94736842 1. ]
[0.86956522 0.91304348 0.95652174 1. ]]]
Recommended Posts