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)
有没有人有解决这个问题的想法?运行这些代码 成功?
谢谢,
杰里米
答案 0 :(得分:11)
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)):
答案 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)
解决方案是避免使用numpy
或math
:
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)
然后,一切再次平静。就像一个图书馆拥有max
和min
!
答案 3 :(得分:0)
我在训练保留对象检测模型(更快的 RCNN)时遇到了同样的问题,这对我来说非常有效:
pip uninstall pycocotools
pip install pycocotools-windows