Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
836 views
in Technique[技术] by (71.8m points)

loops - python "TypeError: 'numpy.float64' object cannot be interpreted as an integer"

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)     

Does anyone has an idea of solving this problem? Running these codes successfully?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
N=np.floor(np.divide(l,delta))
...
for j in range(N[i]/2):

N[i]/2 will be a float64 but range() expects an integer. Just cast the call to

for j in range(int(N[i]/2)):

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...