这是导致错误的代码:
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)
有没有人知道如何解决这个问题?我如何才能让代码成功运行?
7条答案
按热度按时间aurhwmvo1#
N[i]/2
将是一个float64
,但range()
需要一个整数。c2e8gylq2#
我带着同样的错误来到这里,尽管它的起源不同。
它是由1.12.0和更新的numpy版本中不支持的float索引引起的,即使代码应该被认为是有效的。
应为
int
类型,而不是np.float64
解决方案:尝试安装
numpy 1.11.0
5kgi1eie3#
当我训练保留对象检测模型(更快的RCNN)时,我遇到了同样的问题,这对我来说非常有效:
0md85ypi4#
类似的情况.它是工作.然后,我开始包括pytables.在第一次查看,没有理由错误.我决定使用另一个函数,具有域约束(elipse)并收到以下错误:
或
疯狂的事情:我使用的前一个函数,没有代码更改,开始返回相同的错误。我的中间函数,已经使用过:
解决方案是避免
numpy
或math
:然后,一切又恢复了平静,就像是一个图书馆拥有了
max
和min
!m2xkgtsf5#
虽然我很感激这不是OP的问题,但我只是因为一个非常不同的原因而得到这个错误消息,这是最重要的结果,所以我在这里发布我的问题和解决方案。
我有这样的代码:
注意一个微妙的错误:
ndarray
是numpy数组类,但你通常不会直接构造它,而是使用array()
辅助函数:切换到第二种形式解决了我的问题。
wnvonmuf6#
当我们使用旧版本的numpy时可能会出现这个问题。在我的情况下,我使用的是1.18.5。我升级到1.19.5,失败完成。
在此之后,如果您正在使用Jupyter,则应关闭Kernell。
3mpgtkmj7#
如果您正在运行任何对象检测算法并面临此问题,这是因为'
pycocotools
'中的版本冲突。卸载并重新安装它,您的问题将得到解决。