You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将datetime.timedelta类型转换为整数?

如何将datetime.timedelta类型转换为整数并提取数值?

你在使用sklearn随机森林完成预测和准确率测试后,得到了datetime.timedelta类型的运行时长rf_time(示例值为0:00:00.011969),可以通过以下几种方式将其转换为整数,提取不同精度的时长数值:

1. 提取总微秒数(对应示例中的11969)

这是最精确的方式,会把整个时长转换为微秒级的整数:

total_micro = int(rf_time.total_seconds() * 1000000)
print(total_micro)  # 输出:11969

2. 提取总毫秒数(整数部分)

如果只需要毫秒级精度:

total_milli = int(rf_time.total_seconds() * 1000)
print(total_milli)  # 输出:11

3. 提取总秒数(整数部分)

当只需要秒级的整数时长时:

total_sec = int(rf_time.total_seconds())
print(total_sec)  # 输出:0

注意:区分microseconds属性和总微秒数

rf_time.microseconds只能获取秒以下的微秒片段(范围0-999999),如果你的时长包含分钟、小时等更大单位,这个值不等于总时长的微秒数。比如若rf_time为0:01:02.000003,rf_time.microseconds返回3,而总微秒数是62000003,此时必须用total_seconds() * 1000000来获取完整数值。

结合你的原有代码,修改后的示例如下:

import datetime
from sklearn.metrics import accuracy_score

# 原有计时逻辑
a = datetime.datetime.now()
y_pred = clf.predict(X_test)
b = datetime.datetime.now()
rf_time = b - a

# 转换为整数时长
total_micro = int(rf_time.total_seconds() * 1000000)

# 输出结果
print(type(rf_time))
print('Random Forest Time Duration - ', rf_time)
print('Random Forest Time (微秒) - ', total_micro)
print("Random Forest Accuracy:", accuracy_score(y_test, y_pred))

内容的提问来源于stack exchange,提问作者Auvee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 03:54:27