IndexError: только целые числа, срезы (`:`), многоточие (``) . .

Я использую pymc3, чтобы найти наилучший вариант для 3D-поверхности. Это код, который я использую.

with Model() as model:
# specify glm and pass in data. The resulting linear model, its likelihood and                                                                                                   
# and all its parameters are automatically added to our model.                                                                                                                   
glm.glm('z ~ x**2 + y**2 + x + y + np.sin(x) + np.cos(y)' , flatimage)
start = find_MAP()
step = NUTS(scaling=start) # Instantiate MCMC sampling algorithm                                                                                                                 
trace = sample(2000, step, progressbar=False) # draw 2000 posterior samples using NUTS sampling                                                                                  

Я получил ошибку в этой строке:

glm.glm('z ~ x**2 + y**2 + x + y + np.sin(x) + np.cos(y)' , flatimage)

Ошибка:

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

Я пытался исправить это, изменив sin(x) и cos(y) на np.sin(x) и np.cos(y), но это не сработало, и я не знаю, что еще делать.


person VD97    schedule 26.07.2016    source источник


Ответы (1)


Я думаю, что проблема связана с вашим определением flatimage. Для работы модуля glm ваши данные должны быть помечены. Что-то вроде этого:

# synthetic data (just an example)
x = np.random.normal(size=100)
y = np.random.normal(size=100)
z = x**2 + y**2 + x + y + np.sin(x) + np.cos(y)

data = dict(x=x, y=y, z=z) # a pandas dataframe will also work

with pm.Model() as model:
    pm.glm.glm('z ~ x**2 + y**2 + x + y + np.sin(x) + np.cos(y)' , data)
    start = pm.find_MAP()
    step = pm.NUTS(scaling=start)         
    trace = pm.sample(2000, step, start)

Другие подробности см. в этом примере.

person aloctavodia    schedule 28.07.2016
comment
Благодарю вас! Это помогло мне! @aloctavodia - person VD97; 28.07.2016