我正在尝试为特定问题编写一个类。我总是总是收到相同的错误
我尝试使用'//'代替'/',但这似乎不起作用
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”对象不能解释为整数
答案 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)