2
私は5次元の配列(ビニング操作から来て)を持っています。はノーマル(最後の次元は合計== 1)です。Numpyはマルチディム(> = 3)の配列を正規化します。
私は答えhereを見つけたと思ったが、それは言う:私のような5つのネストされたループ、との結果を達成 ValueError: Found array with dim 5. the normalize function expected <= 2.
:
for en in range(en_bin.nb):
for zd in range(zd_bin.nb):
for az in range(az_bin.nb):
for oa in range(oa_bin.nb):
# reduce fifth dimension (en reco) for normalization
b = np.sum(a[en][zd][az][oa])
for er in range(er_bin.nb):
a[en][zd][az][oa][er] /= b
が、私は操作をvectoriseたいです。例えば
:
In [18]: a.shape
Out[18]: (3, 1, 1, 2, 4)
In [20]: b.shape
Out[20]: (3, 1, 1, 2)
In [22]: a
Out[22]:
array([[[[[ 0.90290316, 0.00953237, 0.57925688, 0.65402645],
[ 0.68826638, 0.04982717, 0.30458093, 0.0025204 ]]]],
[[[[ 0.7973917 , 0.93050739, 0.79963614, 0.75142376],
[ 0.50401287, 0.81916812, 0.23491561, 0.77206141]]]],
[[[[ 0.44507296, 0.06625994, 0.6196917 , 0.6808444 ],
[ 0.8199077 , 0.02179789, 0.24627425, 0.43382448]]]]])
In [23]: b
Out[23]:
array([[[[ 2.14571886, 1.04519487]]],
[[[ 3.27895899, 2.33015801]]],
[[[ 1.81186899, 1.52180432]]]])
1 'のようになりtrue'を代わり 'の'渡しますより明確に – Eric
@Divakarと今は恋に落ちています。 – bio
あなたは[回答](http://stackoverflow.com/questions/42859325/swap-zeros-in-numpy-matrix)を削除したのはなぜですか? – EdChum