计算numpy histogram2d数据的中位数

时间:2017-05-16 03:55:22

标签: python numpy median

我有一些数据,我在x和y中bin。然后我对x区中的数据进行标准化,使得xbins中的所有数据总和为1 ...所以我对每个x的每个y值都有一个标准化的概率。

var express = require("express");
var prerender = require("prerender-node");
var app = module.exports = express();
var handlebars = require("express-handlebars");

app.engine("handlebars", handlebars({defaultLayout: "main"}));
app.set("view engine", "handlebars");

app.use(prerender.set("prerenderToken", "qi2e5B985PptQE8aF0dt"));
app.use(express.static("./"));
app.get("/", function (req, res) {
    // res.sendFile("./index.html");
    res.render("home", {
        title: "PLUNQ",
        metaKeyword: "temukan dan ciptakan perjalananmu sendiri, create trip, create diary, follow trip, hidden places, aplikasi untuk traveller",
        metaDescription: "Temukan dan ciptakan perjalananmu disini, Situs yang menyediakan rujukan tempat menarik, event, penginapan serta produk lokal",
        ogTitle: "Plunq | Temukan dan ciptakan perjalananmu disini",
        ogUrl: "https://plunq.id/",
        ogDescription: "Temukan dan ciptakan perjalananmu disini, Situs yang menyediakan rujukan tempat menarik, event, penginapan serta produk lokal",
        ogImage: "https://plunq.id/images/og-image.jpg",
    });
});

app.listen(1234);

此时H沿着列标准化......每个总和为1.

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

以下是我现在正在尝试的内容:

    <title>{{title}}</title>
    <meta name="keywords" content={{metaKeyword}}>
    <meta name="description" content={{metaDescription}}>
    <!-- og meta start here -->
    <link rel="canonical" href={{ogUrl}}/>
    <meta property="og:title" content={{ogTitle}}/>
    <meta property="og:url" content={{ogUrl}}/>
    <meta property="og:type" content="website"/>
    <meta property="og:description" content={{ogDescription}}/>
    <meta property="og:image" content={{ogImage}}/>
    <meta property="fb:app_id" content="921046191363161"/>

1 个答案:

答案 0 :(得分:2)

如果你已经对列进行了标准化,你可以在累积概率函数上进行.5的线性插值:

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