0Pricing
Learn AI with Python · 课时

数据科学中的 Python 数据类型

int、float、complex、bool、str——精度和类型选择如何影响数据分析

数据科学中的 Python 数据类型 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。

数据科学中的数字

Python 有两种核心数值类型:int(任意精度的整数)和 float(64 位 IEEE 754 浮点数)。选择正确的类型可以避免隐蔽的数据错误。

int 精确且无界

Python 整数永远不会溢出。只要内存允许,它们就可以不断增大,非常适合表示精确计数和计算大型阶乘。

big = 2 ** 200
print(big)
print(type(big))   # <class 'int'>

float 的精度陷阱

浮点数无法精确表示每一个十进制数。一个经典的意外结果是:0.1 + 0.2 并不恰好等于 0.3。

print(0.1 + 0.2)          # 0.30000000000000004
print(0.1 + 0.2 == 0.3)   # False

安全地比较浮点数

绝不要使用 == 测试浮点数。请改用带容差的 math.isclose。

import math
print(math.isclose(0.1 + 0.2, 0.3))  # True

使用 Decimal 处理金额

对于货币,请使用 decimal.Decimal,它会存储精确的十进制值。请始终从字符串构造 Decimal,而不是从浮点数构造,以避免继承浮点数误差。

from decimal import Decimal
price = Decimal("0.10") + Decimal("0.20")
print(price)   # 0.30

bool 是 int 的子类

在 Python 中,True 等于 1,False 等于 0。因此可以对布尔值求和来统计匹配项。

mask = [True, False, True, True]
print(sum(mask))      # 3 matches
print(True + True)    # 2

使用布尔值计数

这种将 bool 视为 int 的行为在 NumPy 和 pandas 中随处可见:对布尔掩码求和,就能统计满足条件的行数。

ages = [12, 20, 35, 17, 40]
adults = sum(a >= 18 for a in ages)
print(adults)   # 3

使用 type() 检查类型

type(x) 会返回值的确切类。在某一列意外包含字符串而不是数字时,这很有用。

print(type(5))      # <class 'int'>
print(type(5.0))    # <class 'float'>
print(type("5"))    # <class 'str'>

使用 isinstance() 检查类型

相比 type ==,更推荐使用 isinstance,因为它会遵循继承关系。请注意,bool 能通过针对 int 的检查。

print(isinstance(5, int))        # True
print(isinstance(True, int))     # True (bool subclasses int)
print(isinstance(5.0, (int, float)))  # True

类型强制转换陷阱

混合不同类型会静默地进行强制转换;浮点数的整数除法结果仍是浮点数;将数字与字符串连接会引发 TypeError。请尽早清理数据类型。

print(5 / 2)        # 2.5  (true division always float)
print(5 // 2)       # 2    (floor division)
# "id-" + 5         # TypeError
print("id-" + str(5))  # id-5

聚合中的浮点数意外结果

对大量浮点数求和会累积微小误差。对于大型数据集,优先使用 NumPy,它采用成对求和来减少误差漂移。

vals = [0.1] * 10
print(sum(vals))    # 0.9999999999999999
# NumPy: np.sum(vals) is more numerically stable

快速检查

测试您对 Python 类型的掌握情况。

总结

数据处理中的关键数值知识:

  • int 精确且无界
  • float 是近似值,应使用 math.isclose 而不是 ==
  • 使用 Decimal("...") 处理金额
  • bool 属于 int:sum(mask) 可进行计数
  • type() 显示类,isinstance() 遵循继承关系
  • 注意除法和连接操作中的静默类型强制转换

常见问题解答

「数据科学中的 Python 数据类型」课时是免费的吗?

是的 — 「数据科学中的 Python 数据类型」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。

「数据科学中的 Python 数据类型」这节课中我会学到什么?

int、float、complex、bool、str——精度和类型选择如何影响数据分析 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Learn AI with Python 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「数据科学中的 Python 数据类型」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Learn AI with Python 课中编写并运行代码吗?

能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 虚拟环境与 pip
  2. 用于数据科学的 Jupyter Notebook
  3. 数据科学中的 Python 数据类型
  4. 使用 Python REPL 和 IPython
← 返回 Learn AI with Python