【发布时间】:2014-10-30 16:20:47
【问题描述】:
我正在尝试通过子类化rv_continuous 来生成二维均匀分布。
from scipy import stats
class uniform_2d(stats.rv_continuous):
def _pdf(self, x, y):
X, Y = np.meshgrid(x,y)
result = 1/(max(x)*max(y)) * np.ones_like(X)
return result
x = y = np.linspace(1,3,3)
uni = uniform_2d(name="uni")
pdf = uni.pdf(x,y)
fig = plt.figure(figsize=(9,5))
ax = fig.add_subplot(111)
ax.pcolor(X,Y,pdf)
尝试返回我的结果时失败,出现以下错误:
ValueError: object too deep for desired array
发生了什么事?我的结果具有形状 (3, 3) 并且具有类 numpy.ndarray - 为什么我不能简单地返回一个 numpy.ndarray?
编辑:另外,我是不是走错路了?有没有更简单的方法可以使用scipy.stats 进行二维均匀分布?
【问题讨论】:
标签: python numpy scipy probability