gpt4 book ai didi

python - SciPy - 子类化 rv_continuous 时出现 'Object too deep for desired array'

转载 作者:行者123 更新时间:2023-11-30 23:18:33 25 4
gpt4 key购买 nike

我正在尝试通过子类化 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:对象对于所需数组来说太深

发生什么事了?我的结果具有形状 (3, 3) 并具有类 numpy.ndarray - 为什么我不能简单地返回一个 numpy.ndarray

编辑:另外,我的处理方式是否错误?有没有更简单的方法使用 scipy.stats 进行 2D 均匀分布?

最佳答案

rv_continuous 仅适用于单变量分布。您可以查看scipy/stats/_multivariate.py了解我们如何制作多元分布对象。目前,没有公共(public)基类,只有预期的接口(interface)。

关于python - SciPy - 子类化 rv_continuous 时出现 'Object too deep for desired array',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26642430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com