1
rv_continuous
서브 클래 싱하여 2D 균일 한 분포를 생성하려고합니다.SciPy - 하위 배열 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
을 사용하여 2D 균일 분포를 만드는 더 간단한 방법이 있습니까?
글쎄, 내 목적을 위해 단순히 multivariate_norm 배포를 대신 사용하여 해결 방법을 얻었습니다. 나는 SciPi에서 다변량 배포판이 너무 저개발적이라는 사실에 놀랐습니다! –