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

dgiusagp  于 2023-03-30  发布在  Python
关注(0)|答案(7)|浏览(371)

这是导致错误的代码:

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)

有没有人知道如何解决这个问题?我如何才能让代码成功运行?

aurhwmvo

aurhwmvo1#

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

N[i]/2将是一个float64,但range()需要一个整数。

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

c2e8gylq2#

我带着同样的错误来到这里,尽管它的起源不同。
它是由1.12.0和更新的numpy版本中不支持的float索引引起的,即使代码应该被认为是有效的。
应为int类型,而不是np.float64
解决方案:尝试安装numpy 1.11.0

sudo pip install -U numpy==1.11.0.
5kgi1eie

5kgi1eie3#

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

pip uninstall pycocotools
pip install pycocotools-windows
0md85ypi

0md85ypi4#

类似的情况.它是工作.然后,我开始包括pytables.在第一次查看,没有理由错误.我决定使用另一个函数,具有域约束(elipse)并收到以下错误:

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

m2xkgtsf

m2xkgtsf5#

虽然我很感激这不是OP的问题,但我只是因为一个非常不同的原因而得到这个错误消息,这是最重要的结果,所以我在这里发布我的问题和解决方案。
我有这样的代码:

x = np.ndarray([1.0, 2.0, 3.0], dtype=np.float_)

注意一个微妙的错误:ndarray是numpy数组类,但你通常不会直接构造它,而是使用array()辅助函数:

x = np.array([1.0, 2.0, 3.0], dtype=np.float_)

切换到第二种形式解决了我的问题。

wnvonmuf

wnvonmuf6#

当我们使用旧版本的numpy时可能会出现这个问题。在我的情况下,我使用的是1.18.5。我升级到1.19.5,失败完成。
在此之后,如果您正在使用Jupyter,则应关闭Kernell。

3mpgtkmj

3mpgtkmj7#

如果您正在运行任何对象检测算法并面临此问题,这是因为' pycocotools '中的版本冲突。卸载并重新安装它,您的问题将得到解决。

pip uninstall pycocotools
pip install pycocotools

相关问题