我有一些數據,我在x和y中bin。然後,我將x數據箱中的數據歸一化,以使xbins中的所有數據總和爲1 ...因此,對於每個x處的每個y值,我有一個歸一化概率。numpy histogram2d數據的計算中位數
nA, binsx, binsy = np.histogram2d(dataA,dataB,
bins=[binsA,binsB],normed=False)
H = np.ma.masked_where(nA==0.0, nA)
for i in range(len(H[0,:])): # Column index i, over len of row 0
colTot = np.sum(H[:,i])
for j in range(len(H[:,0])): # Row index j, over len of column 0
H[j,i] = H[j,i]/colTot
此時H沿着列歸......每個款項1
我的問題是,我怎麼能有效地產生每列中值?我相信我需要爲ybin的每個列(或xbin中的一組值)生成一個新數組,該數組的y值等於該ybin的原始(nA)計數。似乎令人費解......有沒有更簡單的方法?
這裏是我現在想:
nA, binsx, binsy = np.histogram2d(dataA,dataB,
bins=[binsA,binsB],normed=False)
for j in range(nA[0,:].size): # Loop over number of columns
oneMass = np.array([])
for i in range(nA[:,0].size): # loop over rows in y...
tmp = np.repeat(binsA[i],np.int32(nA[i,j]))
if tmp.size > 0:
oneMass = np.concatenate((oneMass,tmp))
print('Median',np.median(oneMass))
請提供一些測試數據,以便您的示例可以運行。 – JohanL