Numpy 让 Int64 成为 pandas 中默认的整数数据类型而非标准的 int64
阅读更多:Numpy 教程
背景
Pandas 是 Python 中一个非常流行的数据处理库,广泛应用于数据分析和机器学习领域。而 Numpy 是 Pandas 的核心库之一,负责数据的存储和运算等基本操作。在 Pandas 中,整数类型的数据默认使用 int64 来存储。但事实上,该类型在不同系统和平台下会出现一些问题。
具体来说,int64 需要 8 个字节来存储,而有些机器或平台并不支持这样的数据类型,例如 ARM 架构的计算机(如树莓派),而同时它们支持其他的数据类型,如 Int64。此外,Int-标准整数 类型能够在较小的形式因子下代表更广泛的数字,并且在使用 Pandas 时更高效。
为此,Numpy 决定将 Int64 作为 Pandas 中默认的整数数据类型,以便更好地满足不同平台和系统的需求。
示例
在之前的版本的 Pandas 中,当对 int 类型的数据进行操作时,会使用 int64 数据类型进行存储。而在新版本中,Int64 将取而代之成为默认的整数数据类型。
首先,创建一个 Pandas 数据帧,其中包含一列 int 类型的数据:
该代码将输出以下内容:
在新版本的 Pandas 中,当我们进行类似于添 加操作时:
会发现输出的数据类型变为了 Int64:
在这个例子中,Pandas 将 Int64 视为优 秀的数据类型,因此将其作为默认整数数据类型。
应用与影响
Int64 是 Pandas 中新添加的一种数据类型,旨 在为不同平台和系统提供更好的支持。虽然在大多数情况下,在防止运算过程中的内存溢出的情况下仍然需要 int64,但是 Int64 却是一种更加高效和灵活的数据类型,因此在一些特殊场景下可以更好地发挥作用。
此外,随着 Int64 成为 Pandas 中默认的整数数据类型,它也会对很多正在使用 Pandas 的人产生影响。
例如,在旧版 Pandas 中,使用可选参数 downcast 进行类型转换时,Pandas 会自动将 int 类型转换为 int64。而在新版中,由于 default 是 Int64,因此应该更新代码以避免出现错误。
Numpy 对此也给出了一些建议,包括使用类型名称(int 和 float)替代 dtype (如 ‘d’ 代表 float),或使用 Pandas 中提供的方法来执行类型转换。
例如,如果你希望将整数数据类型转换为 int32,可以利用 Pandas 中提供的 astype 方法:
总结
Numpy 让 Int64 成为 Pandas 中默认的整数数据类型,以支持更广泛 的平台和系统,并提高 Pandas 的整数类型的效率。这个改变不只是对 Pandas 的单个版本有影响,还会影响正在使用 Pandas 的人,需要注意更新代码和遵守最佳实践。在转换类型时,建议使用类型名称而非 dtype,并且可以使用 Pandas 中封装的 astype 方法。
这个改变证明了 Numpy 和 Pandas 在持续进行改进和优化,以适应不断变化的数据处理和分析需求。