与“None”进行比较将产生一个elementwise obj

2024-04-19 22:43:12 发布

您现在位置:Python中文网/ 问答频道 /正文

显然(在“未来”)将不再可能使用以下内容:

import numpy as np
np.array([0,1,2]) == None
> False
> FutureWarning: comparison to `None` will result in an elementwise object comparison in the future.

这也打破了numpy数组的延迟加载模式:

import numpy as np
def f(a=None):
    if a == None: 
        a = <some default value>
    <function body>

还有什么其他可能性允许您仍然使用惰性初始化?


Tags: toinimportnumpynoneanfalseas
1条回答
网友
1楼 · 发布于 2024-04-19 22:43:12

您正在寻找is

if a is None:
    a = something else

问题是,通过使用==运算符,如果输入元素a是一个numpy数组,numpy将尝试执行按元素比较,并告诉您无法进行比较。

对于a一个numpy数组,a == None给出错误,np.all(a == None)没有(但没有达到您期望的效果)。相反,a is None将工作,而不考虑a的数据类型。

相关问题 更多 >