发布
社区首页 >问答首页 >如何将datetime.timedelta转换为int?

如何将datetime.timedelta转换为int?
EN

Stack Overflow用户
提问于 2022-08-18 17:01:56
回答 2查看 560关注 0票数 1

我编写了这些代码,以预测和测试某些数据集的准确性,借助sklearn随机森林分类器。

代码

代码语言:javascript
代码运行次数:0
复制
a = datetime.datetime.now()
y_pred=clf.predict(X_test)
b = datetime.datetime.now()

rf_time = b-a

rf_ac = metrics.accuracy_score(y_test, y_pred)

print(type(rf_time))
print('Random Forest Time Duration - ',b-a)
print("Random Forest Accuracy:",metrics.accuracy_score(y_test, y_pred))

输出

代码语言:javascript
代码运行次数:0
复制
<class 'datetime.timedelta'>
Random Forest Time Duration -  0:00:00.011969
Random Forest Accuracy: 0.6324761904761905

这里我得到了rf_time,它的类型是datetime.timedelta。现在,如何将这个datetime.timedelta转换为整数。如何从0:00:00.011969中获得int值

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-18 17:10:37

UNIT中获取timedelta的通用形式是:

代码语言:javascript
代码运行次数:0
复制
delta / timedelta(UNIT=1)

UNITdayshoursminutessecondsmicrosecondsmilliseconds

NB. --这是一个分区,在python中它总是给出一个浮点,所以您可能需要手动将/显示为int

几秒钟后,就有了timedelta.total_seconds()

示例:

代码语言:javascript
代码运行次数:0
复制
timedelta(days=1) / timedelta(hours=1)  # gives 24.0

对于上面的问题,OP可以将这个print语句用作timedelta的一个数字。

代码语言:javascript
代码运行次数:0
复制
print(
    'Random Forest Time Duration (in µs) -',
    rf_time / datetime.timedelta(microseconds=1)
)
票数 3
EN

Stack Overflow用户

发布于 2022-08-18 17:05:54

这取决于您希望您的干预单元是什么:几秒钟内您可以使用:

代码语言:javascript
代码运行次数:0
复制
from datetime import timedelta
rf_time = timedelta(hours=1)
t_integer = int(t.total_seconds())
t_integer

产出:

如果您想要ns,可以使用:

代码语言:javascript
代码运行次数:0
复制
t_integer = int(t.total_seconds() * 1e9)

产出:

对于我们,您可以使用* 1e6

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73406909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档