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

时间:2014-06-02 21:15:37

标签: 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)     

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

谢谢,
杰里米

4 个答案:

答案 0 :(得分:11)

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

N[i]/2将是float64range()需要一个整数。只需将呼叫转移到

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

答案 1 :(得分:1)

我带着相同的错误来到这里,虽然有一个不同的来源。

  

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

预计是int类型,而不是np.float64 解决方案:尝试安装numpy 1.11.0

sudo pip install -U numpy==1.11.0.

答案 2 :(得分:0)

类似的情况。它正在工作。然后,我开始包含pytables。乍一看,没有理由出错。我决定使用具有域约束(椭圆)的另一个函数,并收到以下错误:

TypeError: 'numpy.float64' object cannot be interpreted as an integer

TypeError: 'numpy.float64' object is not iterable

疯狂的事情:我使用的上一个函数,没有更改代码,开始返回相同的错误。我已经使用的中介函数是:

def MinMax(x, mini=0, maxi=1)
    return max(min(x,mini), maxi)

解决方案是避免使用numpymath

def MinMax(x, mini=0, maxi=1)
    x = [x_aux if x_aux > mini else mini for x_aux in x]
    x = [x_aux if x_aux < maxi else maxi for x_aux in x]
    return max(min(x,mini), maxi)

然后,一切再次平静。就像一个图书馆拥有maxmin

答案 3 :(得分:0)

我在训练保留对象检测模型(更快的 RCNN)时遇到了同样的问题,这对我来说非常有效:

pip uninstall pycocotools
pip install pycocotools-windows