我想将np.inf
的返回类型转换为int
,默认情况下它返回float
类型。
我尝试了以下方法,但都给出了错误。
int(np.inf)
OverflowError:无法将浮点无穷大转换为整数
(np.inf).astype(int64)
AttributeError:“浮动”对象没有属性“ astype”
答案 0 :(得分:0)
有一个浮点数标准:“ IEEE 754”(不是特定于python)。该标准为+/- Infinity和NaN保留了一些特殊的字节序列。 对于整数,不保留这些特殊值,因此不可能有int无限。
我已经做了一些实验:您可以进行np.array([np.inf]).astype(int)[0]
,这会给您-9223372036854775808
(-(2 ** 64)/2
)。 np.array([np.nan]).astype(int)[0]
也会产生相同的值。
答案 1 :(得分:0)
不幸的是,由于注释表明没有,所以,如果您知道所需的整数类型,则可以使用np.iinfo并选择max或min
np.iinfo(np.int32).max # ---- 2147483647
np.iinfo(np.int32).min # ---- -2147483648
np.iinfo(np.int64).max # ---- 9223372036854775807
np.iinfo(np.int64).min # ---- -9223372036854775808