x = np.empty([2], dtype=object)
> array([None, None], dtype=object)
x[0] = 'a'
> array(['a', None], dtype=object)
我正在尝试从此类型为[False, True]
的对象中获取布尔数组ndarray
,其中对象类型为None
。
不起作用的事情:x is None
,x.isfinite()
,x == None
,np.isnan(x)
。该数组可能处于n
维度,这使得循环迭代看起来不愉快。
答案 0 :(得分:7)
在NumPy 1.12及更早版本中,您需要显式调用f2 <- " +(carb|gear)"
newmodels <- lapply(xnam2, function(x) {
lmer(substitute(paste(fla), i + (paste(f2)), list(i = as.name(x))), data = mtcars)
})
以获得广播的相等比较。发表评论,以便未来的读者理解你为什么要这样做:
numpy.equal
在NumPy 1.13及更高版本中,x == None
will give you a broadcasted equality comparison,但如果您想要与早期版本向后兼容,则仍可以使用# Comparisons to None with == don't broadcast (yet, as of NumPy 1.12).
# We need to use numpy.equal explicitly.
numpy.equal(x, None)
。
答案 1 :(得分:3)
您可以将None
包裹在list
或array
中以强制进行元素比较:
>>> x == [None]
array([False, True], dtype=bool)
>>> x == np.array([None])
array([False, True], dtype=bool)
答案 2 :(得分:1)
一些可能的方法是 -
x < 0
x!='a'
array([True,False],dtype = bool)