numpy 3d array -- flatten --> 1d array --> select one element in 1d
array
--> how to know the index of the element in 3d? (?, ?, ?)
For example,
I have 3d histogram data in 3d-array D
.
Let D
be D = np.random.randint(0,100, size=(4,3,2))
.
and then the probability of each element would be equal to P = D / D.sum(0).sum(0).sum(0)
.
Let P be flattened like P_flat = P.reshape(-1)
.
and then randomly chose n-sample from P_flat
: samples = np.random.choice(len(P_flat), n, p=P_flat)
and then, I hope to convert 1D index (=samples
) to 3D index of D
.
For example, convert(samples = [3, 2, 5]
) -> [[?,?,?], [?,?,?], [?,?,?]
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…