考慮:我試圖爲k
的每個元素生成s
樣本von mises分佈,這導致k=0
(這是我的零假設,所以我希望它儘可能準確)的錯誤。我試圖通過給出低的k
並隨機化偏向來「欺騙」它。形狀不匹配:形狀X的值數組無法廣播到形狀的索引結果。 。 。 X?
假設
import numpy as np
s = 1000
k = np.arange(10)
theta = np.zeros_like(k)
shp = (10,)
然後將以下代碼
import scipy.stats as stat
rpt = (s,) + tuple(np.ones_like(shp))
theta = np.tile(theta, rpt)
k_zero = np.logical_not(k)
theta[:, k_zero] = np.random.rand(np.sum(k_zero), s) * 2 * np.pi - np.pi
k[k_zero] = .001
ks = np.tile(k, rpt)
給出了錯誤
Traceback (most recent call last):
File "<ipython-input-blah>", line 1, in <module>
theta[:, k_zero] = np.random.rand(np.sum(k_zero), s) * np.pi - np.pi/2
ValueError: shape mismatch: value array of shape (1,1000) could not be broadcast to indexing result of shape (1,1000)
不過。 。 。這些形狀是相同的。爲什麼我不能那樣做?
編輯:如下指出 -
theta[:, k_zero] = np.random.rand(s, np.sum(k_zero)) * np.pi - np.pi/2
作品。這只是錯誤消息中的錯誤?
*這只是在錯誤信息*錯誤 - 是看到我的編輯答案詳細說明這個 –