python"TypeError:'numpy.float64'对象不能解释为整数"

15 python loops nested

import numpy as np

for i in range(len(x)):
    if (np.floor(N[i]/2)==N[i]/2):
        for j in range(N[i]/2):
                pxd[i,j]=x[i]-(delta*j)*np.sin(s[i]*np.pi/180)
                pyd[i,j]=y[i]-(delta*j)*np.cos(s[i]*np.pi/180)

    else:
        for j in range((N[i]-1)/2):
                pxd[i,j]=x[i]-(delta*j)*np.sin(s[i]*np.pi/180)
                pyd[i,j]=y[i]-(delta*j)*np.cos(s[i]*np.pi/180)     
Run Code Online (Sandbox Code Playgroud)

有没有人有解决这个问题的想法?成功运行这些代码?

谢谢,
杰里米

Pav*_*vel 13

N=np.floor(np.divide(l,delta))
...
for j in range(N[i]/2):
Run Code Online (Sandbox Code Playgroud)

N[i]/2将是一个float64但是range()需要一个整数.只需将电话转为

for j in range(int(N[i]/2)):
Run Code Online (Sandbox Code Playgroud)

  • 好吧,看看你是否再次犯同样的错误; 行号不仅仅是追溯中的乐趣. (4认同)

mrk*_*mrk 8

我带着同样的错误来到这里,尽管一个不同的起源。

这是由 1.12.0 和更新的 numpy 版本中不受支持的浮点索引引起的,即使代码应该被认为是有效的。

需要一个int类型,而不是一个np.float64

解决方法:尝试安装 numpy 1.11.0

sudo pip install -U numpy==1.11.0.
Run Code Online (Sandbox Code Playgroud)