我试图定义以下函数,但我想我在某个地方出错了-
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)
当我向函数传递一些值时,例如-
^{pr2}$我得到以下错误-
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
有人知道是什么引起的吗?在
谢谢!在
如果您使用的是python3,那么
将是一个浮点,它不是有效的索引。尝试将其转换为
int
,或者只使用mkeep=r//keep
强制整数除法。在相关问题 更多 >
编程相关推荐