Python 将float转换为int,并在舍入时引发异常

Python 将float转换为int,并在舍入时引发异常,python,numpy,floating-point,Python,Numpy,Floating Point,例如,我有: a = np.array(...) a[idx / 3] = 5 idx/3将是一个float,即使它在该程序中始终有一个整数值。这将引发一个VisibleDepractionWarning,或者新的Python版本已不再支持该警告 是否有一个内置函数可以将浮点值转换为int值,并在输入值不是整数时引发异常?或者正确的方法是什么? 我知道这也可能会导致一些关于“有多接近”整数的问题,这就是为什么我会问,而不仅仅是信任floor/ceil请明确: assert (idx % 3)

例如,我有:

a = np.array(...)
a[idx / 3] = 5
idx/3
将是一个
float
,即使它在该程序中始终有一个整数值。这将引发一个
VisibleDepractionWarning
,或者新的Python版本已不再支持该警告

是否有一个内置函数可以将浮点值转换为int值,并在输入值不是整数时引发异常?或者正确的方法是什么?

我知道这也可能会导致一些关于“有多接近”整数的问题,这就是为什么我会问,而不仅仅是信任
floor
/
ceil
请明确:

assert (idx % 3) == 0, "idx must be divisible by 3"
a[idx // 3] = 5

为什么
idx
是浮动的?首先看起来有点像设计问题?@WillemVanOnsem:因为一个整数除以另一个整数似乎会导致浮点,即使这个数字实际上有整数值。是的,如果在Python-3中使用
/
执行此操作。但是,如果使用
/
,则它是整数除法。这会给出
索引器:在numpy 1.12上,只有整数、片(`:`)、省略号(`…`)、numpy.newaxis(`None`)和整数或布尔数组是有效的索引。只有当
idx
是浮点时,才需要将
idx//3
的结果实际转换为整数