微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

评估多元均匀分布的 PDF

如何解决评估多元均匀分布的 PDF

我想计算一个点相对于 [-1,1] x [-1,1] 上的均匀分布的密度。我试过这个:

update()

但这会返回一个二维向量而不是标量值。

我能想到的就是

import numpy as np
from scipy.stats import uniform

x = np.zeros(2)
uniform(loc=np.array([-1,-1]),scale=np.array([2,2])).pdf(x)

如果能更快地得到一些东西就好了。就通用功能而言,这是我能做的最好的了。

0.25 * np.all(np.abs(x) <= 2)

解决方法

如果你寻找简单的东西,也许你可以试试这个。您需要微调代码以满足您的需求。

def multivariate_uniform(x,a,b,c,d):
    """
    (a,d) -------- (b,d)
    |               |
    |               |
    |               |
    (a,c) -------- (b,c)
    """
    y = np.array([a,c])
    z = np.array([b,d])
    if (x >= y).all() and (x <= z).all():
        return 1/(b-a)/(d-c)
    else:
        return 0

x1 = np.array([0,0])
print(multivariate_uniform(x1,-1,1,1))

x2 = np.array([2,0])
print(multivariate_uniform(x2,1))

x3 = np.array([0,2])
print(multivariate_uniform(x3,1))

x4 = np.array([-2,2])
print(multivariate_uniform(x4,1))

x5 = np.array([-1,1])
print(multivariate_uniform(x5,1))
0.25
0
0
0
0.25

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。