Python Numpy在除以浮点数64时转换为int32

Python Numpy在除以浮点数64时转换为int32,python,python-3.x,numpy,type-conversion,Python,Python 3.x,Numpy,Type Conversion,我有两个numpy.float64数字,是数据帧查询的结果。令人惊讶的是,他们的部门得到了numpy.int32: o = data["price"].sum() / data["square"].sum() print(type(data["price"].sum()), type(data["square"].sum()), type(o)) 输出为: <class 'numpy.float64'> <class 'numpy.float64'> <class

我有两个
numpy.float64
数字,是数据帧查询的结果。令人惊讶的是,他们的部门得到了
numpy.int32

o = data["price"].sum() / data["square"].sum()
print(type(data["price"].sum()), type(data["square"].sum()), type(o))
输出为:

<class 'numpy.float64'> <class 'numpy.float64'> <class 'numpy.int32'>


怎么了?提前谢谢

我说得对,“Numpy在除浮点数64的同时转换为int32”!简单地说,这是因为最初我不是处理单个变量,而是使用由创建的数组

o = np.arange(len(regions))
(数组元素的数据类型为numpy.int32),并且仅在此之后执行以下操作:

for r in regions:
    o[i] = data[data.district == r]["price"].sum() / data[data.district == r]["square"].sum()

据我所知,在这种情况下,Numpy将除法的结果转换为数组元素的数据类型!尽管事实上,除法结果的类型是numpy.float64…

您能给我们显示重现问题的示例数据吗?遗憾的是,我无法生成…
类型(numpy.float64(1)/numpy.float64(1))
返回
numpy.float64
。。。。不是
numpy.int32
。不知道为什么你的不一样,举个例子吧?试试
o=data[“price”].sum()/(data[“square”].sum()*1.0)
或者
o=data[“price”].sum()/float(data[“square”].sum())
我试过了,之前的结果是这样的……下面是一个csv数据示例:INDEX;段categ;地区;广场价格;价格1;卖办公室;中心的 93.0 ; 86021.51; 8000000.00; 2.卖办公室;中心的 113.0; 55752.21; 6300000.00; 等等