计算numpy直方图2d的中值

2024-09-29 19:22:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些数据存储在x和y中,然后规范化x容器中的数据,使xbins中的所有数据总和为1。。。所以我有一个归一化的概率,对于每个x的y值

    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。在

我的问题是,如何有效地生成每列的中值?我认为我需要为每个列(或xbin中的一组值)生成一个新数组,该数组的y值的数量等于该ybin的原始(nA)计数。似乎很复杂。。。有更简单的方法吗?在

我现在要做的是:

^{2}$

Tags: of数据inforindexlennprange
1条回答
网友
1楼 · 发布于 2024-09-29 19:22:55

如果已经对列进行了标准化,则只需对累积概率函数进行0.5的线性插值:

cumCols = np.cumsum(H, axis = 1)
medians = np.array([np.interp(.5, binsA, cumCols[:,i]) for i in range(len(binsA))])

相关问题 更多 >

    热门问题