我不确定该错误该怎么办

时间:2019-07-25 21:02:13

标签: python typeerror

我正在尝试为特定问题编写一个类。我总是总是收到相同的错误

我尝试使用'//'代替'/',但这似乎不起作用

import numpy as np
myRes = 0.1

class Map(object):

    def __init__(self, origin_x = 0.0, origin_y = 0.0, resolution =myRes, width = 30.0, height = 30.0):
        self.origin_x = origin_x
        self.origin_y = origin_y
        self.resolution = resolution
        self.width = width / resolution
        self.height = height / resolution
        self.grid = 0.5 * np.ones((height // resolution, width // resolution), dtype=np.uint8)

当我初始化类时,我不断收到相同的错误:

  

TypeError跟踪(最近一次通话)    在()中   ----> 1 A = Map()

     

1帧    在 init (自身,origin_x,origin_y,分辨率,宽度,高度)中         8 self.width =宽度/分辨率         9 self.height =高度/分辨率   ---> 10 self.grid = 0.5 * np.ones((高度//分辨率,宽度//分辨率,dtype = np.uint8)

     

/usr/local/lib/python3.6/dist-packages/numpy/core/numeric.py中的一个(形状,dtype,顺序)       221       222“”“   -> 223 a =空(形状,dtype,顺序)       224 multiarray.copyto(a,1,cast ='unsafe')       225返回a

     

TypeError:“ float”对象不能解释为整数

2 个答案:

答案 0 :(得分:2)

问题是您要喂git rm --cached .idea/myproject.iml一对截断的浮点数,但是您答应了throws SQLException个值:

catch

这些除法的结果是RuntimeException值,而不是整数。是的,它们被截断了,但仍然是浮点数,例如2.0或299.0。相反,请转换它们:

np.ones

双斜杠运算符int会返回您希望的截断值,但是,如果其中一个操作数是浮点数,则数据类型将保持浮点数:

np.ones((height // resolution, width // resolution), dtype=np.uint8)

答案 1 :(得分:1)

np.ones函数需要整数作为参数。您可以像这样将它们转换为int

np.ones((int(height // resolution), int(width // resolution)), dtype=np.uint8)