pd.to_numeric 中的向下转型逻辑如何决定何时从 Float64 向下转型为 Float32?

问题描述 投票:0回答:1

我试图理解 pd.to_numeric float 向下转型背后的逻辑。

我希望/期望它能够保留值的唯一性,但在我的示例中,它没有。

文档不解释任何向下转换选项的逻辑:浮点数、整数和无符号。我很想了解它们。

import pandas as pd import numpy as np s = pd.Series(np.random.uniform(0, 1, 100_000), dtype="Float64") s_float32 = pd.to_numeric(s, downcast="float") print(s_float32.dtype) print(s_float32.nunique() == s.nunique()) Float32 False
    
pandas downcast
1个回答
1
投票
您可以阅读

pd.to_numeric

来源
。负责向下转换的代码是here

关键是:

>>> np.typecodes["Float"] 'efdg'
这意味着:

    e(一半):
  • float16
    
    
  • f(单):
  • float32
    
    
  • d(双):
  • float64
    
    
  • g(长双):
  • float128
    
    
算法是从小到大尝试dtype。

© www.soinside.com 2019 - 2024. All rights reserved.