Python 多元均匀分布概率密度函数的计算

Python 多元均匀分布概率密度函数的计算,python,numpy,scipy,distribution,Python,Numpy,Scipy,Distribution,我想计算点的密度,关于[-1,1]x[-1,1]上的均匀分布。我试过这个: 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) 但这将返回一个2D向量,而不是标量值 我能想到的只是 0.25 * np.all(np.abs(x) <= 2) 0.25*np.all(np.abs(

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

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)
但这将返回一个2D向量,而不是标量值

我能想到的只是

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

0.25*np.all(np.abs(x)如果你想找一些简单的东西,也许你可以试试这个。你需要微调代码以满足你的需要

def多元均匀(x,a,b,c,d):
"""
(a,d)——(b,d)
|               |
|               |
|               |
(a,c)——(b,c)
"""
y=np.数组([a,c])
z=np.数组([b,d])

如果(x>=y).all()和(x)如果两个均匀分布是独立的,则有一个封闭形式的解。更一般地说,在scipy中创建自定义多元分布可能有助于它返回2D向量,因为
x=np.zero(2)
是一个二维向量。我认为
均匀
只能用于定义简单的均匀分布。@jasonwong你会怎么做?
def multivariate_uniform(x, lows, highs):
    return np.all((lows <= x) & (x <= highs)) / np.prod(highs - lows)
0.25
0
0
0
0.25