gpt4 book ai didi

python - 为什么 Pandas 将我的 numpy float32 强制转换为 float64?

转载 作者:太空狗 更新时间:2023-10-30 00:06:14 30 4
gpt4 key购买 nike

为什么 Pandas 在这段代码中将我的 numpy float32 强制转换为 float64:

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame([[1, 2, 'a'], [3, 4, 'b']], dtype=np.float32)
>>> A = df.ix[:, 0:1].values
>>> df.ix[:, 0:1] = A
>>> df[0].dtype
dtype('float64')

我觉得这种行为很奇怪,想知道它是否是一个错误。我使用的是 Pandas 版本 0.17.1(更新的 PyPI 版本),我注意到最近解决了一些强制错误,请参阅 https://github.com/pydata/pandas/issues/11847 .我还没有用更新的 GitHub master 尝试这段代码。

这是错误还是我误解了 Pandas 中的某些“功能”?如果它是一项功能,那么我该如何绕过它?

(强制转换问题与我最近提出的一个关于 Pandas 作业性能的问题有关:Assignment of Pandas DataFrame with float32 and float64 slow)

最佳答案

我认为值得将此作为 GitHub 问题发布。这种行为肯定是不一致的。

代码根据 DataFrame 是否为混合类型 (source) 采用不同的分支。

  • 在混合类型的情况下,ndarray 被转换为 float64 数字的 Python 列表,然后转换回 float64 ndarray,忽略 DataFrame 的数据类型信息 (function maybe_convert_objects())。

  • 在非混合类型的情况下,DataFrame 内容几乎直接更新 (source) 并且 DataFrame 保持其 float32 dtypes。

关于python - 为什么 Pandas 将我的 numpy float32 强制转换为 float64?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35230388/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com