2017-07-20 12 views
0

私は次の関数を定義しようとしていますが、私はどこかでエラーが発生していると思います -IndexError:整数、スライス( `:`)、省略記号( `...`)、有効なインデックスです

IndexError        Traceback (most recent call last) 
<ipython-input-288-9d3d5702a1a0> in <module>() 
----> 1 banana(0.5,0,3,3,1000,10,10) 

<ipython-input-287-ac0004b13e9f> in banana(A, B, C1, C2, N, keep, init) 
     9   if (r>init*keep and r%keep==0): 
    10    mkeep=r/keep 
---> 11    bimat[mkeep-init,:]=np.array([x1, x2]) 
    12 
    13  return(bimat) 

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

は、誰が何を知っていmigh - 私は次のエラーを取得する

banana(0.5,0,3,3,1000,10,10) 

を -

私は例えば、関数にいくつかの値を渡す

import numpy as np 
import math 

def banana(A,B,C1,C2,N,keep,init): 

R = init*keep + N*keep 
x1=x2=0 
bimat = np.zeros((N,2)) 
for r in range(1,R+1): 
    x1=np.random.normal((B*x2+C1)/(A*(x2**2)+1),math.sqrt(1/(A*(x2**2)+1))) 
    x2=np.random.normal((B*x1+C2)/(A*(x1**2)+1),math.sqrt(1/(A*(x1**2)+1))) 
    if (r>init*keep and r%keep==0): 
     mkeep=r/keep 
     bimat[mkeep-init,:]=np.array([x1, x2]) 

return(bimat) 
それを引き起こしているのだろうか?

ありがとうございます!

答えて

1

あなたは、Python 3を使用している場合は、

mkeep=r/keep 

が有効なインデックスではありませんフロートになります。 intにキャストしてください。または、整数分割を強制するにはmkeep=r//keepを使用してください。

関連する問題