索引器错误:只有整数、切片(`:`)、省略号(`…`)才是有效的索引

2024-10-06 08:41:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图定义以下函数,但我想我在某个地方出错了-

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

有人知道是什么引起的吗?在

谢谢!在


Tags: and函数inimportinitnpmathbanana
1条回答
网友
1楼 · 发布于 2024-10-06 08:41:09

如果您使用的是python3,那么

    mkeep=r/keep

将是一个浮点,它不是有效的索引。尝试将其转换为int,或者只使用mkeep=r//keep强制整数除法。在

相关问题 更多 >