栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

numpy:检查值是否为NaT

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy:检查值是否为NaT

简介:
这个答案是在Numpy版本为1.11的时候写的,而NAT比较的行为应该从版本1.12开始改变。显然不是这种情况,答案的第二部分就错了。答案的第一部分可能不适用于新版本的numpy。确保已检查以下MSeifert的答案。


第一次进行比较时,始终会发出警告。但是同时返回的比较结果是正确的:

import numpy as np    nat = np.datetime64('NaT')def nat_check(nat):    return nat == np.datetime64('NaT')nat_check(nat)Out[4]: FutureWarning: In the future, 'NAT == x' and 'x == NAT' will always be False.Truenat_check(nat)Out[5]: True

如果要禁止显示警告,则可以使用catch_warnings上下文管理器:

import numpy as npimport warningsnat = np.datetime64('NaT')def nat_check(nat):    with warnings.catch_warnings():        warnings.simplefilter("ignore")        return nat == np.datetime64('NaT')nat_check(nat)Out[5]: True

编辑: 由于某些原因,Numpy版本1.12中NAT比较的行为没有改变,因此下一个代码证明是不一致的。

最后,您可以检查numpy版本以处理自1.12.0版本以来的更改行为:

def nat_check(nat):    if [int(x) for x in np.__version__.split('.')[:-1]] > [1, 11]:        return nat != nat    with warnings.catch_warnings():        warnings.simplefilter("ignore")        return nat == np.datetime64('NaT')

编辑:
正如MSeifert所述,Numpy包含

isnat
自版本1.13起的函数。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号